我有一个xaml TabControl,在一个页面上,有3个RadioButtons,每个都绑定到相邻ListView的选定值上的不同属性.在ListView中的所选项之间切换后,我的单选按钮似乎忘记了它们已被绑定且不刷新.
所以在调试器中观察它,当我切换到一个新的选定项目时,我看到非用户代码首先检查所有3个属性的值,然后只检查前两个,最后只检查第一个.但是,如果我更改标签并更改回来,它似乎给了我另外几个用途.
绑定本身相当简单.将bool属性与IsChecked的TwoWay绑定.它的深度为4级(Path = DataModel.Selected.AB),但我有其他相同深度的东西可以正常工作.
这是人们听说过的,知道可能会发生什么吗?或者如果绑定以某种方式被遗忘,有没有办法明确提醒xaml?
可以像这样手动更新绑定:
TestCheckBox .GetBindingExpression(CheckBox.IsCheckedProperty) .UpdateTarget();
话虽如此,我没有100%的信心,这将纠正你的根本问题.在使用WPF绑定之前我没有遇到过这类问题,但是我在选项卡控件方面遇到了一些奇怪的问题.
这显然是一个已知的问题:
http://social.msdn.microsoft.com/forums/en-US/wpf/thread/8eb8280a-19c4-4502-8260-f74633a9e2f2/
简而言之,当尝试取消选中任何其他按钮时,RadioButton(通过.Net 3.5sp1)以某种方式杀死其他RadioButton的绑定.简单的修复(读取:hack)是为每个radiobutton分配一个不同的GroupName然后他们不会试图弄乱彼此