我看到一个奇怪的问题,当绑定到组合框时显示值有时显示空白。然而,这种情况是可重复的,并在第二次从另一个父表单打开对话时发生。如果父窗体关闭并重新打开,则第一次打开子窗口时,包含的WPF组合框将正确显示显示属性。如果我然后关闭对话框并再次从同一父窗体重新启动它,那么即使我可以验证ViewModel中相同的绑定属性被击中,ComboBox也不会显示任何显示值。奇怪的问题绑定到组合框,其中显示值有时显示为空
<ComboBox ItemsSource="{Binding AvailableVehicles}"
SelectedValuePath="Value"
SelectedValue="{Binding SelectedVehicle, Mode=TwoWay}"
DisplayValuePath="Value.Model" />
要解释我的视图模型的数据结构它基本上只是一个公开的AvailableVehicles集里面有一个对象,其类似于可空<>键入它封装了一个Vehicle对象,并公开它通过一个类价值财产。每辆车都有一个模型和成本属性。
我一直在解决这个问题的时间超过一天,我几乎排除了一切,但这是ComboBox本身的错误。所以在这一点上,我希望有一个合理的解决方法,但如果有人能真正帮助指出我的代码中的缺陷,那也会很棒。
注:
- 我一直没能得到这个问题更简单的单一窗口WPF例如重现。
- WinForms互操作场景,其中我有一个MDI父窗体和子窗体,其中可能是相关的情况下容纳WPF UserControls。
- 如果在ItemsSource或SelectedValue绑定上将IsAsync设置为True,则问题不再发生。
- 如果我把DisplayValuePath改成一个ItemsTemplate,并且在定义的DataTemplate中的绑定中放置了一个转换器,我注意到传入的值是null而不是期望的值。
有趣的是,如果我能够解决它,我会尝试你在测试项目中的建议并回复给你。感谢您的输入。 – jpierson 2011-04-14 20:20:38
我想我找到了我的问题的来源,请参阅我的答案以获取更多信息。 – jpierson 2012-08-24 14:17:58