我有一个复选框,其IsEnabled属性绑定到其数据上下文的只读属性。但结果并不像预期的那样。实际上,该属性是在视图模型的构造函数
中的任务(线程)中计算的我的印象是计算值在某种程度上是不同的,但在检查snoop时,它将复选框的IsEnabled属性显示为False,而在数据上下文选项卡中显示属性为True。
我认为这是由于线程化,每当视图在完成线程执行之前加载时,它就会显示错误的值。
以前我用它来绑定
IsEnabled="{Binding IsFeatureAvailable}"
后来为了解决这个问题,我使用了这个
IsEnabled="{Binding IsFeatureAvailable, UpdateSourceTrigger=PropertyChanged}"
但没有任何变化,任何建议
我正在使用Framework版本4.5.2和Caliburn micro for MVVM
答案 0 :(得分:2)
您应该实施INotifyPropertyChanged
界面并在PropertyChanged
属性设置为新值时提升IsFeatureAvailable
事件:
public class ViewModel : PropertyChangedBase
{
private _isFeatureAvailable;
public bool IsFeatureAvailable
{
get { return _isFeatureAvailable; }
set
{
_isFeatureAvailable = value;
NotifyOfPropertyChange(() => IsFeatureAvailable);
}
}
}