주 윈도우와 다른 페이지가있는 WPF 응용 프로그램이 있습니다. 페이지 (OverzichtPage) 중 하나에서 TextBox를 DataController (Data)에 바인딩했습니다. 처음에는WPF 텍스트 상자 바인딩이 앞으로 및 뒤로 다시 이동 한 후에 사라집니다.
public static DependencyProperty data = DependencyProperty.Register("Data", typeof(DataController), typeof(OverzichtPage));
public DataController Data
{
get { return (DataController)GetValue(data); }
set { SetValue(data, value); }
}
<TextBox Name="naamPatientTxtBox" Text="{Binding Path=Data.Patient.naam, Mode=TwoWay}" DataContext="{Binding ElementName=OP}" />
: (즉, 환자가 동일하게 유지하기로하고 사라지는 할 수 있도록 DataController는, 싱글 톤입니다 .. 언급 할 가치가있을 수 있음) (이 페이지의 코드 숨김에 DependencyProperty에있다) 시력,이 구속력이 작용하는 것 같습니다.
을 클릭하여 다른 페이지로 이동할 때 바인딩이 갑자기 작동하지 않습니다. 탐색 한 후에 naamPatientTxtBox.GetBindingExpression (TextBox.TextProperty) .ParentBinding을 발견했습니다. 비었다. 누가이 바인딩이 탐색 후 갑자기 사라지는 지에 대한 단서가 있습니까? 나는 이것이 어떻게 가능한지 정말로 이해하지 못한다.
대단히 감사합니다 Erno! 참으로 그 문제를 해결했습니다! WPF에 익숙하지 않고 WPF 페이지에 KeepAlive와 같은 것이 있다는 것을 알지 못했습니다. – StefK
이것은 바인딩 문제를 해결합니다. 하지만 캐시를 지속성이 없도록 (즉, 새로운 페이지가 있는지) 확인하려면 어떻게해야합니까? RelayCommands가 여전히 작동한다고 가정하기 때문에 텍스트 상자의 바인딩 누출 문제는 매우 이상합니다. – Goufalite
@Goufalite - 다른 질문이므로 별도로 게시해야합니다. http://stackoverflow.com/questions/11654421/detect-navigationwindow-go-back-event에서 살펴보십시오. –