这是我上一个问题的后续问题(请参阅此处的代码示例和我对已接受答案的最后评论)。简而言之,我在WPF DataGridTextColumn
上有一个Multibinding
到一个(自产的)Person
对象和一个CheckBox
。在我办公室的几台计算机上,它像预期的那样工作——根据我的实现IMultiValueConverter
接口的对象,根据CheckBox
的状态改变内容——但是在该领域测试的所有四台计算机上(到目前为止),它失败了。
失败似乎是由于绑定错误,因为传递给IMultiValueConverter
值数组的对象具有类型MS.Internal.NamedObject
,我怀疑这是空数据绑定对象DependencyProperty.UnsetValue
(但ToString()
没有给出更明确的指示)。
表面上看,这些计算机的配置是相同的,尽管它们实际上不是来自克隆映像。我的问题是硬件和/或平台的哪些方面可能导致Multibinding
的不同行为?或者我可以尝试进一步调查问题的根源吗?(免责声明:我几乎是WPF和XAML的新手。)
我搜索了MS.Internal.NamedObject
,发现了这篇文章,听起来可能与此有关。
最终原因是WPF 4框架中的一个错误,该错误与绑定到ObservableCollection的虚拟化控件有关,并且更改了DataContext。官方bug报告页面上发布了一些解决方法,最简单的解决方案似乎是如果可以的话升级您的框架版本。