WPF,请问ListBox的Binding是否为空呢?
设置了ListBox的绑定:
listbox1.ItemsSource = list;
在这种情况下,与listbox1的ItemsSource属性关联的Binding好像是null的。
那如何设置listbox1的SourceUpdated事件呢?因为要响应SourceUpdated事件,要求Binding的NotifyOnSourceUpdated属性值设置为true。可是Binding为null啊。
该怎么设置呢?
[解决办法]
你确定你绑定的东西是实现了INotifyPropertyChanged的类吗?或者你绑定的List有没有搞定 INotifyCollectionChanged接口呢?
[解决办法]
listbox1.ItemsSource = list; 这是绑定吗 另外List集合没有实现变更通知 可以用ObservervationCollection(没有提示器 拼不全呀) 集合 在对集合进行 增删会出发变更通知事件 从而会自动更新 不知道回答的是不是你所想问的。
综上 你的问题可能是1:listbox1.ItemsSource = list 并没用到Binding语法 只是一般赋值
2: 绑定到List集合没有实现InotifyPropertyChange/InotifyCollectionChange接口 不会自动更新
listbox1.ItemsSource = list;
这不是绑定吗 ?我觉得应该是吧
listBox1.ItemsSource = list;
这个问题我以前也碰过,反正要么是没有用ObservableCollection,要么是泛类里的那个类没有实现INotifyPropertyChanged,再或者你实现了INotifyPropertyChanged但是没有调用OnPropertyChanged事件。
对于实现了INotifyPropertyChanged但是没有实现INotifyCollectionChanged接口:修改的内容可以正确反应到目标ListBox中,但是对记录的添加和删除操作没有反应。
对于实现了INotifyCollectionChanged接口但是没有实现INotifyPropertyChanged接口:添加和删除操作可以正确反应,但是对已经存在于列表中的记录的修改没有反应。
对于两者都实现的情况:即可以反应新记录的添加,旧记录的删除,也可以修改现有的记录。
如果实现了INotifyPropertyChanged接口,但是没有在属性修改时调用OnPropertyChanged方法,效果等同于没有实现INotifyPropertyChanged接口。
[解决办法]
补充一下,ObservableCollection里有实现INotifyCollectionChanged接口。上文所述的三种情况应该是:
讨论泛类:Colletion<T>中
Collection有没有实现INotifyCollectionChanged,以及T中有没有实现INotifyPropertyChanged。
对于Collection有没有实现INotifyPropertyChanged接口没有限制,虽然说ObservableCollection是实现了,但是我试验了一下,如果自己写一个不实现的也可以用。但是如果这个类不实现INotifyPropertyChanged接口的话,类里面非列表的属性就无法绑定了。
[解决办法]
listbox1.ItemsSource = list; 这是绑定吗 另外List集合没有实现变更通知 可以用ObservervationCollection(没有提示器 拼不全呀) 集合 在对集合进行 增删会出发变更通知事件 从而会自动更新 不知道回答的是不是你所想问的。
综上 你的问题可能是1:listbox1.ItemsSource = list 并没用到Binding语法 只是一般赋值
2: 绑定到List集合没有实现InotifyPropertyChange/InotifyCollectionChange接口 不会自动更新
listbox1.ItemsSource = list;
这不是绑定吗 ?我觉得应该是吧