2013-08-04 63 views
1

我的意思是:假設在ViewModel上有IsCompliantShowWarning屬性。 UI有一些消息綁定到ShowWarning,並且如果ViewModel不符合條件以及其他一些條件,我們想要顯示警告。所以,我的編碼是這樣的:有沒有辦法註冊一個屬性取決於另一個?

private bool mbIsCompliant; 
    public bool IsCompliant 
    { 
     get { return mbIsCompliant; } 
     set 
     { 
      mbIsCompliant = value; 

      RaisePropertyChanged (() => IsCompliant); 
      RaisePropertyChanged (() => ShowWarning); 
     } 
    } 

    public bool ShowWarning 
    { 
     get { return !IsCompliant && [other conditions]; } 
    } 

注意,雙RaisePropertyChanged呼叫二傳手爲IsCompliant,觸發綁定到ShowWarning視圖的更新。但是這讓我覺得很開心,因爲每個屬性在ViewModel中都有這些調用。

我更喜歡的方式是讓我可以在構造函數中註冊的依賴關係表,並讓MVVMCross記錄如果屬性A發生變化,然後屬性B也發生變化等等。通過這種方式,每個屬性都會跟蹤自己,並且整個類將管理屬性之間的依賴關係。

這是存在嗎?這是一個合理的想法,還是有更好的方法來實現我的目標?

回答

1

有沒有「的一種方式」來做到這一點,但也有少數人有不同的技術,包括一般INotifyPropertyChanged的攔截試驗,一些基於屬性的擴展和一些面向方面的編程技術

有關這些一些例子和信息,見:

+0

哇,這是一個很大吸收。我會通過這些鏈接工作,看看什麼對我來說最好。謝謝! –

相關問題