WPF页面刷新

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

即可.

 

WPF页面刷新

上一篇:A.浏览器访问 kube-apiserver 安全端口


下一篇:C#中out、ref和params的区别