当前位置:  开发笔记 > 编程语言 > 正文

是否可以'刷新'WPF数据绑定

如何解决《是否可以'刷新'WPF数据绑定》经验,为你挑选了2个好方法。

我有一个xaml TabControl,在一个页面上,有3个RadioButtons,每个都绑定到相邻ListView的选定值上的不同属性.在ListView中的所选项之间切换后,我的单选按钮似乎忘记了它们已被绑定且不刷新.

所以在调试器中观察它,当我切换到一个新的选定项目时,我看到非用户代码首先检查所有3个属性的值,然后只检查前两个,最后只检查第一个.但是,如果我更改标签并更改回来,它似乎给了我另外几个用途.

绑定本身相当简单.将bool属性与IsChecked的TwoWay绑定.它的深度为4级(Path = DataModel.Selected.AB),但我有其他相同深度的东西可以正常工作.

这是人们听说过的,知道可能会发生什么吗?或者如果绑定以某种方式被遗忘,有没有办法明确提醒xaml?



1> Daniel Pratt..:

可以像这样手动更新绑定:

TestCheckBox
    .GetBindingExpression(CheckBox.IsCheckedProperty)
    .UpdateTarget();

话虽如此,我没有100%的信心,这将纠正你的根本问题.在使用WPF绑定之前我没有遇到过这类问题,但是我在选项卡控件方面遇到了一些奇怪的问题.



2> 小智..:

这显然是一个已知的问题:

http://social.msdn.microsoft.com/forums/en-US/wpf/thread/8eb8280a-19c4-4502-8260-f74633a9e2f2/

简而言之,当尝试取消选中任何其他按钮时,RadioButton(通过.Net 3.5sp1)以某种方式杀死其他RadioButton的绑定.简单的修复(读取:hack)是为每个radiobutton分配一个不同的GroupName然后他们不会试图弄乱彼此

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有