2017-10-20 126 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