内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我使用 MicroMVVM框架,并且在保护方法上有一些问题。
我有一个视图模型:
public class MyViewModel : PropertyChangedBase, IMyViewModel
a财产:
public DateTime? Date { get{return this.date; } set { this.date = value; this.NotifyOfPropertyChange(() => Date); } }
另外,我的视图模型中有一个方法,它有一个保护方法。
public void Calculate() { // ..some code.. } public bool CanCalculate() { return this.Date.HasValue; }
我遇到的问题是,CanCalculate方法在加载时执行,但是当我在文本字段中输入值时,它不会重新计算CanCalculate方法。我在设置数据库视图模型属性时触发属性更改事件,那么问题是什么?
如果您不需要CanExecute作为方法,因为您不会使用参数。然后,您可以用标准通知将其重写为属性,并且只能使用getter。并在更改getter的结果时调用它的PropertyChanged。