Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有可能';刷新';WPF数据绑定_Wpf_Data Binding_Binding_Refresh - Fatal编程技术网

有没有可能';刷新';WPF数据绑定

有没有可能';刷新';WPF数据绑定,wpf,data-binding,binding,refresh,Wpf,Data Binding,Binding,Refresh,我有一个xaml选项卡控件,在一个页面上,有3个单选按钮,每个按钮绑定到相邻ListView的选定值上的不同属性。在ListView中的选定项目之间切换后,“我的单选按钮”似乎忘记了它们已绑定且不会刷新 因此,在调试器中观察它,当我切换到一个新的选定项时,我看到非用户代码首先检查所有3个属性的值,然后只检查前两个,最后只检查第一个属性。然而,如果我换了标签又换回来,它似乎又给了我一些用途 绑定本身相当简单。bool属性到IsChecked的双向绑定。它有4层深(Path=DataModel.Se

我有一个xaml选项卡控件,在一个页面上,有3个单选按钮,每个按钮绑定到相邻ListView的选定值上的不同属性。在ListView中的选定项目之间切换后,“我的单选按钮”似乎忘记了它们已绑定且不会刷新

因此,在调试器中观察它,当我切换到一个新的选定项时,我看到非用户代码首先检查所有3个属性的值,然后只检查前两个,最后只检查第一个属性。然而,如果我换了标签又换回来,它似乎又给了我一些用途

绑定本身相当简单。bool属性到IsChecked的双向绑定。它有4层深(Path=DataModel.Selected.A.B),但我在同一深度有其他东西可以很好地工作


这是人们听说过并知道可能发生的事情吗?或者,如果绑定不知何故被遗忘,是否有办法明确提醒xaml?

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

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

也就是说,我没有100%的信心,这将纠正您的根本问题。我以前在WPF绑定方面没有遇到过这种问题,但在选项卡控件方面遇到了一些奇怪的问题。

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


简言之,一个单选按钮(通过.NET3.5sp1)在尝试取消选中任何其他按钮时被选中时,会以某种方式终止其他单选按钮的绑定。简单的解决方法(阅读:hack)是给每个radiobutton分配一个不同的组名,然后它们就不会试图互相干扰了

解决这个问题的另一种方法是在列表框中伪造一个属性列表,并让ListBoxItem模板成为radiobutton。

我更倾向于责怪radiobutton而不是TabControl,但那只是因为我以前有过其他问题。我将尝试这个临时修复,即使在每次选择更改时都这样做,似乎也没有帮助,这与绑定完全丢失的理论相符。在使用Snoop进行进一步研究后,我可以看到绑定在多次选择更改后消失。