我的 UI 上有一个 ListBox,它绑定到 ObservableCollection 的属性。我将 ObservableCollection 的新实例设置到视图模型构造函数中的属性中,并且可以使用表单上的按钮向其中添加项目。这些在列表中可见。
一切都很好。
但是,如果我重新初始化该属性new在按钮回调中,它会破坏绑定,并且 UI 不再显示集合中的内容。
我假设绑定将继续查找属性的值,但它可能链接到被破坏的引用new.
我做对了吗?谁能详细说明这是如何联系起来的?当我的视图模型不了解视图时,有没有办法重新绑定它?
确保在重新初始化集合后引发 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?");
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)