我有一个表格,显示有关程序变量的信息。所以知道我想在任何变量发生变化时更新表格。有什么方法可以触发事件或类似的东西吗?
问问题
103 次
2 回答
3
没有这样的能力,除非你自己编码或者使用一些超级高级的代码工具。
我建议您使用属性而不是字段(除非您实际上是指局部变量?)并实现INotifyPropertyChanged
接口。
于 2013-02-13T14:23:42.933 回答
0
好吧,有很多方法,但我使用的是可观察的 collectionchanged 事件,所以无论何时触发该事件,它都会执行如下操作...
static void ObservableEmployees_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
switch (e.Action)
{
case NotifyCollectionChangedAction.Add:
Console.WriteLine("New item {0} added in the collection",e.NewItems[0].ToString());
break;
case NotifyCollectionChangedAction.Remove:
Console.WriteLine("Old item {0} removed in the collection", e.OldItems[0].ToString());
break;
case NotifyCollectionChangedAction.Move:
Console.WriteLine("item {0} is moved", e.NewItems[0].ToString());
break;
case NotifyCollectionChangedAction.Replace:
Console.WriteLine("item{0} is replacced by item{1}.", e.OldItems[0].ToString(), e.NewItems[0].ToString());
break;
case NotifyCollectionChangedAction.Reset:
Console.WriteLine("itme{0} is reset.", e.OldItems[0].ToString());
break;
}
和订阅..
observableEmployees = new ObservableCollection<Employee>();
observableEmployees.CollectionChanged += ObservableEmployees_CollectionChanged;
于 2013-02-13T14:24:18.753 回答