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