2012-02-05 20 views
5

Jestem bardzo nowy w WPF, więc wybacz mi, jeśli pytanie nie ma sensu. Czy zdarzenie jest uruchamiane przed zmianą kontekstu danych? Chcę zatwierdzić oczekujące zmiany danych, zanim kontekst danych zostanie zmieniony.Wydarzenie dla "DataContextChanging"?

Odpowiedz

18

Nie ma DataContextChanging wydarzenie, ale zdarzenie DataContextChanged zapewnia starą wartość DataContext:

private void Window_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) 
{ 
    object oldDataContext = e.OldValue; 
    ... 
} 
+3

Delegat jest nieco inna dla Windows starcie. Args to DataContextChangedEventArgs i nie ma właściwości oldValue. Jaki byłby odpowiedni? – bahti

+0

@bahti, nie wiem ... Nie jestem pewien czy * jest * odpowiednikiem –

3

Nie ma takiego zdarzenia, jeśli chcesz się upewnić, że dane zostały zapisane lub że użytkownik może zrezygnować z edycji, należy zajrzeć do architektury navigational, w której ekrany są zmieniane w sposób zarządzany.