2016-09-21 152 views
0

我有一个WPF-UI与两个日期选择器。第一个日期选择器设置当前日期,第二个日期选择器设置参考日期。根据datepickers中选择的这两个日期将数据加载到网格中,并显示它们随时间的变化。与INotifyPropertyChanged相互依赖的属性

我现在的问题是,选择当前日期当然应该以这样的方式影响参考日期,即当当前日期落后于参考日期时,参考日期应该被自动设置为落后一天选定的日期。例如:

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

无论何时日期发生变化,数据现在都会重新加载到datagrid中。在这种情况下,这意味着我必须在选择当前日期时重新​​加载数据,但是当选择参考日期时,我还必须重新加载数据。应用上面的方法会导致调用loadData方法两次。

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 
} 

(代码片段只是为了说明问题,他们不是实际的代码)

我会为如何实现一种机制,允许只提出一个通知,一旦您的任何想法感谢整个日期选择操作。

回答

0

最好选择DP over INPC。 DP允许Coercion, and Validation。 但是如果你想使用INPC,你可以在CurDate的setter中更改RefDate,并且从CurrentDate自己提升OnPropertyChanged("ReferenceDate")

+0

我认为DependecyProperties应该只用于当我想通过UI访问一个自定义的属性。 – narain

+0

@narain DP下降是必须在DO中定义的。 – AnjumSKhan