c# – WPF:绑定列表到列表框
我有一个班:
public class A : INotifyPropertyChanged { public List<B> bList { get; set; } public void AddB(B b) { bList.Add(b); NotifyPropertyChanged("bList"); } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(string info) { if (PropertyChanged != null) { PropertyChanged(this,new PropertyChangedEventArgs(info)); } } } 而一个绑定(UserControl的DataContext是A的一个实例): <ListBox ItemsSource="{Binding Path=bList}" /> 显示元素,将新对象添加到列表后,列表框不会更新 将列表更改为ObservableCollection并删除NotifyPropertyChanged处理程序后,一切正常. 为什么列表不工作? 解决方法
您的财产必须是公开的,否则绑定引擎将无法访问它.
编辑:
这就是为什么ObservableCollection< T>类被引入… ObservableCollection< T>实现INotifyCollectionChanged,它允许它在添加/删除/替换项目时通知UI.列表与LT; T>不会触发任何通知,所以用户界面无法检测列表的内容何时发生变化. 提出PropertyChanged事件的事实会刷新绑定,但是它意识到它与List< T>的实例相同.如前所述,它重用与ItemsSource相同的ICollectionView,并且ListBox的内容不被刷新. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- C#处理Json格式文件的代码演示
- 单IP无TMG拓扑Lync Server 2013:边缘服务器
- c – 在boost python中使用自定义智能指针
- xml – Web.Config转换不更改任何值
- ruby-on-rails – 在rails中为options_for_select定义id或类
- 将24小时时间转换为12小时加上AM/PM指示Oracle SQL
- ruby-on-rails – 为什么Rails 4.2响应者不断告诉我向Gemfi
- c# – 异步多次请求相同的Web服务
- C# 读写XML(代码分享)
- ruby-on-rails – Rails:在category_helper.rb中定义的方法