WPF页面刷新

时间:2022-05-20 14:43:58

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);

即可.