2013-01-08 88 views
2

我想創建一個ViewModel類來從數據庫中檢索值。 我的目標是從我的數據庫表中檢索RAM的使用值(RAM總數& Ram可用),然後將其顯示在我的View上。創建一個ViewModel類

這是我在我的ViewModel類迄今所做

public class RamViewModel : INotifyPropertyChanged 
{ 
    float _ramTotal; 
    float _ramUsed; 

    public float RamTotal 
    { 
     get { return _ramTotal; } 
     set { _ramTotal = value; RaisePropertyChanged("RamTotal"); } 
    } 

    public float RamUsed 
    { 
     get { return _ramUsed; } 
     set { _ramUsed = value; RaisePropertyChanged("RamUsed"); } 
    } 

    private void RaisePropertyChanged(string p) 
    { 
     throw new NotImplementedException(); 
    } 
    } 

當我建立這個類,我得到這個錯誤,指出,「ViewModel.RamViewModel不實現接口成員「System.ComponentModel.INotifyPropertyChanged .PropertyChanged'」

如何克服這種錯誤

回答

2

INotifyPropertyChanged的是一個成員需要被包含在類定義的接口:

public event PropertyChangedEventHandler PropertyChanged; 

你也應該改變代碼RaisePropertyChanged不拋出異常,通過實現實際的功能:

private void RaisePropertyChanged(string p) 
    { 
     if (null != PropertyChanged) PropertyChanged(this, new PropertyChangedEventArgs(p)); 
    } 
+0

它最終奏效了謝謝@both –

2

您的類不公開PropertyChanged事件,這是必要的實現INotifyPropertyChanged(它是唯一成員類的界面)。

所以,你應該加上:

public event PropertyChangedEventHandler PropertyChanged; 

private void RaisePropertyChanged(string propertyName) 
{ 
    var handler = this.PropertyChanged; 
    if (handler != null) { 
     handler(this, new PropertyChangedEventArgs(propertyName); 
    } 
} 

ObservableCollection無關這一點。

+0

謝謝@Jon讓我試試這個 –

+0

它工作最後謝謝@both –