Tom*_*onk 14 .net c# collections
我有一个具有属性A和B的自定义类Foo.我想在数据绑定控件中显示它.
我创建了一个类Foos : BindingList<Foo>
.
为了更新FOOS类内部的一些特性,我需要通知的属性发生变化(我可以处理插入,删除等)在列表中的项目.您将如何实现该功能?
我应该从支持它的框架中的某个对象继承Foo吗?我想我可以创建一些事件,通知我是否有变化,但这是应该做的方式吗?或者框架中是否有一些模式,这对我有帮助?
Jul*_*iet 23
Foo应该实现INotifyPropertyChanged
和INotifyPropertyChanging
接口.
public void Foo : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged(String info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
private int _someValue;
public int SomeValue
{
get { return _someValue; }
set { _someValue = value; NotifyPropertyChanged("SomeValue"); }
}
}
Run Code Online (Sandbox Code Playgroud)
本BindingList
应自动钩住你的事件处理程序,只要你设置你的类调用你的GUI现在应该更新PropertyChanged
事件处理程序.
[编辑添加:]此外,BindingList
该类公开了两个事件,这些事件在添加或修改集合时通知您:
public void DoSomething()
{
BindingList<Foo> foos = getBindingList();
foos.ListChanged += HandleFooChanged;
}
void HandleFooChanged(object sender, ListChangedEventArgs e)
{
MessageBox.Show(e.ListChangedType.ToString());
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
15901 次 |
最近记录: |