• WPF MVVM实现INotifyPropertyChanged数据监听


    创建ViewBase类,重写INotifyPropertyChanged接口,实现数据更新

    public class ViewBase : INotifyPropertyChanged
        {
            [AttributeUsage(AttributeTargets.Parameter, Inherited = false)]
            public class CallerMemberNameAttribute : Attribute
            {
    
            }
            public event PropertyChangedEventHandler PropertyChanged;
            protected void UpdateProper<T>(ref T properValue, T newValue, [CallerMemberName] string properName = "")
            {
                if (object.Equals(properValue, newValue))
                    return;
    
                properValue = newValue;
                PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(properName));
            }
        }

    与xaml对应的ViewModel,继承ViewBase

        public class MainWindowView:ViewBase
        {
            private string stuName;
            public string StuName { get => stuName; set => UpdateProper(ref stuName, value); }
        }

    xaml.cs中

            public MainWindow()//构造方法
            {
                InitializeComponent();
                view = new MainWindowView();
                this.DataContext = view;
            }
            MainWindowView view;//相应的ViewModel对象名

    xaml中

    <TextBox Text="{Binding StuName}"></TextBox>

    若实现双向绑定则更改UpdateSourceTrigger属性,该属性是数据更新的触发方式

    <TextBox Text="{Binding StuName,UpdateSourceTrigger=PropertyChanged}"></TextBox>
  • 相关阅读:
    第一天,用诗遇见
    13计本班人工智能第二次作业
    第一次人工智能作业
    陈林 130702010048
    人工智能第一次作业
    第二次作业
    人工智能第一次作业
    软件工程(2019)结对编程第二次作业
    软件工程(2019)结对编程第一次作业
    软件工程(2019)第二次作业
  • 原文地址:https://www.cnblogs.com/Stay627/p/13965451.html
Copyright © 2020-2023  润新知