У меня есть следующие MenuItem в WPF:Доступ Свойство объекта привязан к ItemsSource
<MenuItem
x:Name="Menu1"
ItemsSource="{Binding ListOfObject1}" Visibility="{Binding ListOfObject1, Converter={u:NullToVisibleConverter}}"
>
<MenuItem.Style>
<Style>
<Setter
Property="Control.IsEnabled"
Value="true"
/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition
Binding="{Binding PropertyInViewModel, Converter={baseTc:IsNullConverter} }"
Value="true"
/>
<Condition
Binding="{Binding ElementName=Menu1, Path=Items.BoolInObject1}"
Value="True"
/>
</MultiDataTrigger.Conditions>
<Setter
Property="Control.IsEnabled"
Value="False"
/>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>
Так я хочу, чтобы мой MenuItem быть IsEnabled=false
, если свойство PropertyInViewModel
равно нулю и свойство BoolInObject1
верно. DataContext установлен в ViewModel. Объект Object1
определен в другом месте. Поэтому в основном мое второе условие не работает, т. Е. Мне нужно получить доступ к свойству элемента/объекта из источника items, чтобы проверить, включен ли этот элемент или нет. Может кто-нибудь объяснить мне, как это сделать? Итак, как определить второе условие для доступа к свойствам объектов, связанных с ItemsSource. Спасибо заранее.
Кстати, если только эти условия, вы можете добавить 'Setter' отключить по умолчанию, а затем добавьте две одинарные связывания DataTriggers: один, что позволяет, если' PropertyInViewModel' не '{х: Null } ', и один, который позволяет, если' whatnot.BoolInObject1' является ложным. Таким же логическим результатом. –
Его мультитатригергер не мультиплексирует, я думаю, что мне не нужно иметь мультиконвертер, как я уже указал условия, не так ли? Object1 - это открытый класс, определенный в моем решении. Поэтому, конечно, это ссылка на ListOfObject1, I.e. его тип списка. – SQLStarter
Ой, ты прав. Нет необходимости в мультиконвертере. –