我有以下代码:
<local:StaffAtMeetingEditor DataContext="{Binding Meeting}" Grid.Row="1">
<local:StaffAtMeetingEditor.InEditMode>
<MultiBinding Converter="{StaticResource myMeetingLogEditableMultiConverter}">
<Binding Path="ParentSI.ItemInEditMode"/>
</MultiBinding>
</local:StaffAtMeetingEditor.InEditMode>
</local:StaffAtMeetingEditor>
设置是包含控件的数据类型是“SIP_ServiceItem”。此类有一个名为“Meeting”的属性(设置为本地的 DataContext:StaffAtMeetingEditor 控件),它本身有一个名为“ParentSI”的成员,指向父 SIP_ServiceItem 对象。
问题是,如果我将它作为单个绑定传递(即从上面的代码中删除开始和结束 MultiBinding 标记,只留下绑定),它就可以正常工作。但是,当我将其设为 MultiBinding(我希望尽快添加一些其他绑定)并尝试将绑定值传递给 myMeetingLogEditableMultiConverter 时,应该对应于布尔值 ParentSI.ItemInEditMode 的 values(0) 参数实际上是一个MS.Internal.NamedObject,暗示某处有空引用。此外,ParentSI 属性从未被评估过,因此出现了完全错误的情况。我不知道单绑定和多绑定案例之间的区别。
谢谢。