我的UI上有一个ListBox绑定到ObservableCollection的属性.我将ObservableCollection的新实例设置到视图模型的构造函数中的属性中,我可以使用表单上的按钮添加项目.这些在列表中可见.
一切都很好.
但是,如果在按钮回调中重新初始化该属性,则会破坏绑定,UI不再显示集合中的内容.
我认为绑定将继续查找属性的值,但它可能与新引用的引用相关联.
我有这个权利吗?任何人都可以扩展如何联系起来?当我的观点模型不了解视野时,有没有办法重新绑定?
解决方法
确保在重新取代您的收藏后,您正在提高一个PropertyChangedEvent.提高此事件将允许视图处理对该属性的更改,而模型不知道该视图.
class Model : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(string name) { if (PropertyChanged != null) PropertyChanged(this,new PropertyChangedEventArgs(name)); } private ObservableCollection<string> _list = new ObservableCollection<string>(); public ObservableCollection<string> List { get { return _list; } set { _list = value; NotifyPropertyChanged("List"); } } public Model() { List.Add("why"); List.Add("not"); List.Add("these?"); } }
原文地址:https://www.jb51.cc/csharp/97931.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。