2016-09-21 4 views
0

Ich habe eine WPF-UI mit zwei Datepickern. Der erste Datepicker setzt das aktuelle Datum, der zweite Datepicker setzt ein Referenzdatum. Basierend auf diesen zwei Daten, die in den Datumsauswahldaten ausgewählt sind, werden die Daten in ein Gitter geladen und ihre zeitliche Änderung wird angezeigt.Interdependente Eigenschaften mit INotifyPropertyChanged

Das Problem, das ich jetzt habe, ist, dass die Wahl des aktuellen Datums natürlich das Referenzdatum so beeinflussen sollte, dass wenn das aktuelle Datum hinter dem Referenzdatum liegt, das Referenzdatum automatisch auf einen Tag zurück gesetzt werden sollte das ausgewählte Datum Zum Beispiel:

CurrentDate = new Datetime(2016,09,12); // Selected to be the 12th 
if(ReferenceDate > CurrentDate) 
    ReferenceDate = CurrentDate.AddDays(-1) 

Die Daten werden jetzt immer dann in das Datagrid geladen, wenn sich das Datum ändert. In diesem Fall muss ich die Daten neu laden, wenn ein aktuelles Datum ausgewählt ist, aber ich muss die Daten auch neu laden, wenn das Referenzdatum ausgewählt ist. Die Anwendung der obigen Methode führt dazu, dass die loadData-Methode zweimal schwer aufgerufen wird.

propertyChanged(parameters...) { 
    if(CurrentDate) 
     loadData(); // Selecting the CurrentDate will load Data 
    if(ReferenceDate) 
     loadData(); // Automatically changing the RefDate will load the data a second time 
} 

(Die Code-Schnipsel sind nur das Problem zu veranschaulichen, sind sie nicht unbedingt Code)

ich für alle Ideen dankbar sein würde, wie man einen Mechanismus zu implementieren, die erlaubt nur eine Benachrichtigung, sobald zu erhöhen für die gesamte Datumsauswahloperation.

Antwort

0

Es ist besser, DP über INPC zu wählen. DP erlaubt Coercion, and Validation. Aber immer noch, wenn Sie INPC verwenden möchten, können Sie RefDate in der Setter von CurDate ändern und OnPropertyChanged("ReferenceDate") von CurrentDate Setter selbst erhöhen.

+0

Ich dachte DependecyProperties sollte nur verwendet werden, wenn ich auf eine selbstdefinierte Eigenschaft über die ui zugreifen möchte. – narain

+0

@arain Nachteil mit DP ist es muss in einem DO definiert werden. – AnjumSKhan

Verwandte Themen