TK.*_*TK. 7 c# properties event-handling
如果我有房产:
public list<String> names { get; set; }
Run Code Online (Sandbox Code Playgroud)
每当名称被添加到列表中时,如何为参数起见生成和处理名为'onNamesChanged'的自定义事件?
Jar*_*Par 13
BindingList可能是您的最佳选择,因为它具有内置的更改跟踪和您可以使用的各种现有事件.下面是一个公开Add的自定义事件的示例,该事件转发到BindingList事件.
class Example
{
private BindingList<string> m_names = new BindingList<string>();
public IEnumerable<string> Names { get { return m_names; } }
public event AddingNewEventHandler NamesAdded
{
add { m_names.AddingNew += value; }
remove { m_names.AddingNew -= value; }
}
public void Add(string name)
{
m_names.Add(name);
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 10
BindingList的另一种替代方法是ObservableCollection - 在这种情况下,您希望将自己的事件处理程序订阅到CollectionChanged事件并根据操作触发事件.