2012-02-22 48 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