簡體   English   中英

具有INotifyPropertyChanged的相互依賴的屬性

[英]Interdependent Properties with INotifyPropertyChanged

我有一個帶有兩個日期選擇器的WPF-UI。 第一個日期選擇器設置當前日期,第二個日期選擇器設置參考日期。 根據在日期選擇器中選擇的這兩個日期,將數據加載到網格中並顯示其隨時間的變化。

我現在遇到的問題是,選擇當前日期當然會以某種方式影響參考日期,即當當前日期晚於參考日期時,參考日期應自動設置為所選日期之后的一天。 例如:

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

現在,無論何時更改日期,數據都會重新加載到數據網格中。 在這種情況下,這意味着我必須在選擇當前日期時重新​​加載數據,但是我還必須在選擇參考日期時重新​​加載數據。 應用上述方法導致兩次調用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
}

(代碼段只是為了說明問題,它們不是實際的代碼)

對於如何實現僅在整個日期選擇操作中僅發出一次通知的機制,我將不勝感激。

最好選擇INPC上的DP。 DP允許強制轉換和驗證 但是,即使您想使用INPC,也可以在CurDate的設置器中更改RefDate,並從CurrentDate設置器本身提高OnPropertyChanged OnPropertyChanged("ReferenceDate")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM