WPF中的INotifyPropertyChanged尝试理解WPF。这是我的测试类:publicpartialclassMainWindow:Window,INotifyPropertyChanged{privateObservableCollection_myList=newObservableCollection();publicObservableCollectionMyList{get{return_myList;}设置{_myList=值;RaisePropertyChanged("_myList");}}publicMainWindow(){InitializeComponent();comboBox1.DataContext=_myList;}privatevoidbutton1_Click(objectsender,RoutedEventArgse){MyList=AnotherClass.SomeMethod();}公共事件PropertyChangedEventHandlerPropertyChanged;(PropertyChanged!=null){PropertyChanged(this,newPropertyChangedEventArgs(propertyName));}}}internalstaticclassAnotherClass{publicstaticObservableCollectionSomeMethod(){returnnewObservableCollection{"this","is","test"};这是XAML使这段代码工作的方式吗?我希望在单击按钮并更新MyList后,ComboBox数据将被更改。PropertyChangedEventHandler始终为空。问题是您将原始列表直接设置为Window.DataContext,因此没有任何内容可以监听Windows的PropertyChanged事件。要解决此问题,请将DataContext设置为窗口本身:this.DataContext=this;然后更改Binding以查看属性:您还需要更改属性定义,以便它抛出您要更改的属性的名称,而不是成员的名称:this.RaisePropertyChanged("MyList");我认为你有两个问题:1)绑定应该是:{BindingMyList}2)OnRaisePropertyChanged(“MyList”);setter你应该使用RaisePropertyChanged("MyList");以上就是C#学习教程:INotifyPropertyChangedinWPF的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
