PropertyGrid绑定了一个List集合,在属性控件中点击弹出VS自带的集合属性编辑器,此时对其值进行修改,请问如何立马获取此时修改的值?麻烦知道的达人赐教一下,我卡在这边很长时间。谢谢。
让List集合中的对象
Implements System.ComponentModel.INotifyPropertyChanging
Implements System.ComponentModel.INotifyPropertyChanged
这样就有OnPropertyChanged事件,这个可以通过Object_PropertyChanged事件捕捉到。
弹出VS自带集合属性编辑器?不太明白。
如果是修改Grid,立刻获取修改的值,可以通过Grid绑定BindingList集合,集合中的类继承INofityPropertyChanged,然后实现该接口。
using System.ComponentModel; public class ClassA : INotifyPropertyChanged { /// <summary> /// Name /// </summary> private string _name; public string Name { get { return _name; } set { _name= value; OnPropertyChanged("Name"); } } public event PropertyChangedEventHandler PropertyChanged; /// 属性改变通知事件 /// </summary> /// <param name="propertyName">属性名称</param> public void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } }