XAML Menuitem Видимость Связано с другим элементом управления или триггер не работает - PullRequest
0 голосов
/ 25 августа 2011

Visibility="{Binding Path=Visibility, ElementName=btnUndo}"/>

Я пытаюсь привязать видимость меню к другим элементам управления видимостью (btnUndo).

, который управляет видимостью, связан с триггером

        <Style x:Key="undoStyle">
            <Style.Triggers>
                <DataTrigger Binding="{Binding SelectedItem.isEdited, ElementName=lvBatches}" Value="True">
                    <Setter Property="FrameworkElement.Visibility" Value="Visible"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding SelectedItem.isEdited, ElementName=lvBatches}" Value="False">
                    <Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>

Я пытался привязать MenuItem к тому же триггеру, но это тоже не сработало.

Есть предложения?

1 Ответ

1 голос
/ 25 августа 2011

ContextMenus существует в слое Adorner, который не является тем же деревом визуалов, что и слой пользовательского интерфейса.

Я знаю, что вы можете связать что-то вроде следующего в MenuItem, который вернет Control ContextMenu подключен, и оттуда вы можете найти нужные данные.

{Binding Path=PlacementTarget, RelativeSource=
     {RelativeSource FindAncestor, AncestorType={x:Type ContextMenu}}}

Например, вы можете создать конвертер, который проходит по VisualTree из указанного элемента управления, пока он не найдет объект, который ищет, или вы можете привязать к DataContext и найти конкретное значение в вашей ViewModel.

...