
xmlns:local="clr-namespace:BindingTest"<ListBox x:name="myList" ItemsSource="{Binding Source={x:Static local:MyClass.Dic},Path=Keys,Mode=OneWay,UpdateSourceTrigger=Explicit}"></ListBox> MyClass是一个公共静态类,Dic是一个静态公共属性,一个Dictionary.
在某一点上,我将项添加到Dictionary并希望ListBox反映更改.
这是我想要使用的代码,但它不起作用:
BindingExpression binding;binding = myList.GetBindingExpression(ListBox.ItemsSourceProperty);binding.UpdateTarget();
相反,此代码有效:
myList.ItemsSource = null;myList.ItemsSource = MyClass.dic.Keys;
我更喜欢使用UpdateTarget,但我不能让它工作.
我究竟做错了什么?
我想你想要的东西如下:
var itemsVIEw = CollectionVIEwSource.Getdefaultview(myListBox.ItemsSource);itemsVIEw.Refresh()
事实上,您要刷新的ICollectionVIEw对象.这实际上是为您管理集合绑定的对象.有关详细信息,请参阅the MSDN page.
总结以上是内存溢出为你收集整理的c# – 无法使ListBox和UpdateTarget正常工作全部内容,希望文章能够帮你解决c# – 无法使ListBox和UpdateTarget正常工作所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)