WPF页面刷新:
在WPF项目中,类的属性变了,但界面值没有变,且我们也没有对类的属性做PropertyChanged的set处理.
如何实现呢?
首先我们需要实现一个INotifyPropertyChanged。
并实现一个方法:
public void OnPropertyChanged(string propertyName = null)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
在类修改后,使用OnPropertyChanged(null);即可。
我的定义如下:
public class BaseViewModel: INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; protected bool SetProperty<T>(ref T properValue, T newValue, string properName = null) { if (object.Equals(properValue, newValue)) return false; properValue = newValue; OnPropertyChanged(properName); return true; } public void OnPropertyChanged(string propertyName = null) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) { handler(this, new PropertyChangedEventArgs(propertyName)); } } }
以上做了基类,数据类继承于它。
public class MyDataModel : BaseViewModel
使用时:
MyDataModel.value="Test";
MyDataModel.OnPropertyChanged(null);
即可.