MultiBinding не работает, но работает соответствующая Binding - PullRequest
2 голосов
/ 11 марта 2011

У меня есть следующий код:

<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, параметр values ​​(0), который должен соответствовать логическому ParentSI.ItemInEditMode, фактически являетсяMS.Internal.NamedObject, подразумевая, что где-то есть нулевая ссылка.Кроме того, свойство ParentSI никогда не оценивается, поэтому что-то идет не так.Я затрудняюсь понять разницу между случаями единственного и множественного связывания.

Спасибо.

Ответы [ 2 ]

2 голосов
/ 11 августа 2011

Я знаю, что это немного устарело, и вы, вероятно, уже поняли это, но я столкнулся с этим, поскольку у меня была похожая проблема, и я решил поделиться решением: у меня была та же проблема, и я добавилАтрибуты ElementName и Mode, как показано ниже:

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

Надеюсь, это кому-нибудь поможет, даже если ОП исправит их проблему.

0 голосов
/ 14 марта 2011

Может быть, вы должны попытаться добавить любое временное неиспользуемое связанное значение. Например:

<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 ограничения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...