日期:2014-05-17  浏览次数:21004 次

WPF,请问ListBox的Binding是否为空呢?
设置了ListBox的绑定:
listbox1.ItemsSource = list;
在这种情况下,与listbox1的ItemsSource属性关联的Binding好像是null的。
那如何设置listbox1的SourceUpdated事件呢?因为要响应SourceUpdated事件,要求Binding的NotifyOnSourceUpdated属性值设置为true。可是Binding为null啊。

该怎么设置呢?

------解决方案--------------------
你确定你绑定的东西是实现了INotifyPropertyChanged的类吗?或者你绑定的List有没有搞定 INotifyCollectionChanged接口呢?
------解决方案--------------------
引用:
Quote: 引用:

你确定你绑定的东西是实现了INotifyPropertyChanged的类吗?或者你绑定的List有没有搞定 INotifyCollectionChanged接口呢?

是的

从你的问题来看,要设置SourceUpdated就直接绑定一个函数到上面就行了啊。另外没看到代码完全不知道你是神马问题。。。
------解决方案--------------------
listbox1.ItemsSource = list; 这是绑定吗 另外List集合没有实现变更通知 可以用ObservervationCollection(没有提示器 拼不全呀) 集合  在对集合进行 增删会出发变更通知事件 从而会自动更新 不知道回答的是不是你所想问的。
综上 你的问题可能是1:listbox1.ItemsSource = list 并没用到Binding语法 只是一般赋值
                   2: 绑定到List集合没有实现InotifyPropertyChange/InotifyCollectionChange接口 不会自动更新
------解决方案--------------------
引用:
Quote: 引用:

listbox1.ItemsSource = list; 这是绑定吗 另外List集合没有实现变更通知 可以用ObservervationCollection(没有提示器 拼不全呀) 集合  在对集合进行 增删会出发变更通知事件 从而会自动更新 不知道回答的是不是你所想问的。
综上 你的问题可能是1:listbox1.ItemsSource = list 并没用到Binding语法 只是一般赋值
                   2: 绑定到List集合没有实现InotifyPropertyChange/InotifyCollectionChange接口 不会自动更新

listbox1.ItemsSource = list; 
这不是绑定吗 ?我觉得应该是吧


单纯的绑定是没有意义的,比如以下代码:
List<String> strList = new List<String>();
listBox1.ItemsSource = strList;

因为你绑定的strList并没有实现 INotifyCollectionChanged 接口。
而以下写法是可以使用的:
ObservableCollection<String> strList = new ObservableCollection<String>();