创建一个ViewModel类
本文关键字:一个 ViewModel 创建 | 更新日期: 2023-09-27 17:50:58
我想创建一个ViewModel类从数据库中检索值。我的目标是检索RAM的使用值(RAM总数&Ram可用)从我的DB表,然后显示在我的视图。
这是我到目前为止对我的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'"
如何克服这个错误
INotifyPropertyChanged是一个接口,它有一个成员需要包含在你的类定义中:
public event PropertyChangedEventHandler PropertyChanged;
您还应该通过实现实际功能来更改RaisePropertyChanged
中的代码,使其不抛出异常:
private void RaisePropertyChanged(string p)
{
if (null != PropertyChanged) PropertyChanged(this, new PropertyChangedEventArgs(p));
}
您的类不公开PropertyChanged
事件,这对于实现INotifyPropertyChanged
的类是必要的(它是该接口的唯一成员)。
所以你应该加上:
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
var handler = this.PropertyChanged;
if (handler != null) {
handler(this, new PropertyChangedEventArgs(propertyName);
}
}
ObservableCollection
与此无关