2012-02-22 52 views
1

我正在使用MVVM Light Toolkit,並且我想創建一個RelayCommand在哪裏調用RaiseCanExecuteChanged?

如果我的ViewModel有一些String屬性,哪些在設置器中調用RaiseCanExecuteChanged,一切正常,可以在需要時執行該命令。

但是,如果我更改了代碼,我創建了一個Model類X,它包含所有這些屬性,ViewModel包含一個X類型的屬性,我應該在那裏調用RaiseCanExecuteChanged?在Model類中沒有意義,並且ViewModel中的X的setter不被調用。

回答

4

您可能需要訂閱Model類PropertyChanged事件,並在model屬性更改時引發RaiseCanExecuteChanged。

+0

這麼簡單明顯......謝謝! – Aaaaaaaa 2012-02-22 21:30:08

+0

您能否給我舉個例子?我沒有得到你所說的...... – Vishal 2016-06-03 17:40:14

+0

@Vishal在VM構造函數中,當你設置模型時,做一些類似'model.PropertyChanged + =(o,e)=> this.command.RaiseCanExecuteChanged() ;' – 2016-06-03 17:41:55