2017-10-20 127 views
-1

我有一个复选框,其IsEnabled属性绑定到其数据上下文的只读属性。但结果并非如预期的那样。实际上,该属性是在视图模型的构造函数WPF属性值不同于绑定值

中的任务(线程)中计算的我的印象是,计算值在某种程度上不同,但在检查snoop时,它显示复选框的IsEnabled属性为False,并且在数据上下文中标签该属性是True。

我相信这是由于线程和每当完成该线程执行前的视图加载时,它显示错误的值。

以前我用这对解决这个的希望结合

IsEnabled="{Binding IsFeatureAvailable}" 

后来,我用这个

,但没有任何改变,任何建议

我使用框架版本4.5.2和MVVM的Caliburn micro

+3

你实现INotifyPropertyChanged接口?你如何设置源属性? – mm8

+0

如果您正在使用MultiThreading,请考虑使用Dispatcher并在UI线程上触发通知。我遇到了这个问题,通知没有显示,因为我没有通过Dispatcher调用'OnPropertyChanged'。 – XAMlMAX

回答

2

您应该实现t他INotifyPropertyChanged接口,每当它设置为一个新值提高PropertyChanged事件为IsFeatureAvailable属性:

public class ViewModel : PropertyChangedBase 
{ 
    private _isFeatureAvailable; 
     public bool IsFeatureAvailable 
    { 
     get { return _isFeatureAvailable; } 
     set 
     { 
      _isFeatureAvailable = value; 
      NotifyOfPropertyChange(() => IsFeatureAvailable); 
     } 
    } 
} 
+0

@MegaMind:如果您的问题已解决,请记住接受该答案:https://stackoverflow.com/help/someone-answers – mm8