c# – 无法使ListBox和UpdateTarget正常工作

c# – 无法使ListBox和UpdateTarget正常工作,第1张

概述以下是XAML文件的相关部分: xmlns:local="clr-namespace:BindingTest"<ListBox x:Name="myList" ItemsSource="{Binding Source={x:Static local:MyClass.Dic}, Path=Keys, 以下是XAML文件的相关部分:
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,但我不能让它工作.
我究竟做错了什么?

解决方法 项目的绑定处理方式与WPF中DependencyPropertys的标准绑定(特别是ItemsControls)的处理方式截然不同.

我想你想要的东西如下:

var itemsVIEw = CollectionVIEwSource.Getdefaultview(myListBox.ItemsSource);itemsVIEw.Refresh()

事实上,您要刷新的ICollectionVIEw对象.这实际上是为您管理集合绑定的对象.有关详细信息,请参阅the MSDN page.

总结

以上是内存溢出为你收集整理的c# – 无法使ListBox和UpdateTarget正常工作全部内容,希望文章能够帮你解决c# – 无法使ListBox和UpdateTarget正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1251765.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存