【问题标题】:MultiBinding not working but corresponding Binding does workMultiBinding 不工作,但相应的 Binding 工作
【发布时间】:2011-07-13 16:28:47
【问题描述】:

我有以下代码:

<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 属性从未被评估过,因此出现了完全错误的情况。我不知道单绑定和多绑定的区别。

谢谢。

【问题讨论】:

    标签: wpf binding converter multibinding


    【解决方案1】:

    您可能应该尝试添加任何临时未使用的绑定值。例如:

    <local:StaffAtMeetingEditor DataContext="{Binding Meeting}" Grid.Row="1">
        <local:StaffAtMeetingEditor.InEditMode>
            <MultiBinding Converter="{StaticResource myMeetingLogEditableMultiConverter}">
                <Binding Path="ParentSI.ItemInEditMode"/>
                <Binding Path="ParentSI"/>
            </MultiBinding>
        </local:StaffAtMeetingEditor.InEditMode>
    </local:StaffAtMeetingEditor>
    

    如果它不起作用,那么你的实现是错误的,另一种情况 - 这是MultiBinding 限制。

    【讨论】:

    • 您好,感谢您的提示,但我认为这不是问题所在 - 我最初对多路转换器有几个输入,但它仍然无法正常工作(因此我将其缩减为一个,为简单起见)。我的问题似乎与此类似:stackoverflow.com/questions/3701732/… 但我看不到适用于这种情况的解决方案。
    【解决方案2】:

    我知道这有点老了,你现在可能已经想通了,但我遇到了这个问题,因为我遇到了类似的问题,并认为我会分享解决方案:我遇到了同样的问题并添加了属性 ElementName 和 Mode 如下:

    <Binding Path="CurrentProvider.IsBusy" ElementName="parent" Mode="OneWay" />
    

    希望这对某人有所帮助,即使 OP 已经解决了他们的问题。

    【讨论】:

      猜你喜欢
      • 2017-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-24
      • 2018-06-04
      • 1970-01-01
      • 2016-08-31
      • 1970-01-01
      相关资源
      最近更新 更多