我正在处理一些使用并坚持 MVVM 模式的 WPF 问题。
我的大部分属性如下所示:
public string Period
{
get { return _primaryModel.Period; }
set
{
if (_primaryModel.Period != value)
{
_primaryModel.Period = value;
RaisePropertyChanged("Period");
}
}
}
Run Code Online (Sandbox Code Playgroud)
这很好用。
但是我也有一些这样的属性:
public bool EnableConsignor
{
get
{
return (ConsignorViewModel.Id != 0);
}
}
Run Code Online (Sandbox Code Playgroud)
它没有设置器,因为 id 会“自动”更改(每次ConsignorViewModel调用save 时。然而,这会导致“系统”不知道 bool 何时从 false 变为 true(因为没有RaisePropertyChanged叫做)。
对于这些类型的属性,您只需PropertyChanged在依赖数据发生更改时引发。就像是:
public object ConsignorViewModel
{
get { return consignorViewModel; }
set
{
consignorViewModel = value;
RaisePropertyChanged("ConsignorViewModel");
RaisePropertyChanged("EnableConsignor");
}
}
Run Code Online (Sandbox Code Playgroud)
RaisePropertyChanged可以在任何方法中调用,所以只需将它放在任何会改变返回值的EnableConsignor操作之后。以上只是一个例子。
| 归档时间: |
|
| 查看次数: |
1804 次 |
| 最近记录: |