Как привязать к цели стиля в ContextMenu в стиле? - PullRequest
0 голосов
/ 16 июля 2010

Я хочу установить CommandTarget для MenuItem объекта ContextMenu в стиле в качестве цели, то есть элемента управления, к которому применяется стиль.

<Style x:Key="AAA" TargetType="{x:Type BBB}">
        <Setter Property="ContextMenu">
            <Setter.Value>
                <ContextMenu>
                    <MenuItem Command="{x:Static CCC}" CommandTarget="{Binding ???}"/>
               </ContextMenu>
            </Setter.Value>
        </Setter>
  </Style>

Я пробовал RelativeSource TemplatedParent, SelfFindAncestor, ни один из них не работает.Есть ли другой способ выбрать цель?

1 Ответ

0 голосов
/ 16 июля 2010

Вы создаете один объект ContextMenu, который будет использоваться многими элементами пользовательского интерфейса. Можно подумать, что вы хотите привязать к тому, кто действительно открыл ContextMenu. Это доступно в PlacementTarget свойстве ContextMenu. Из MenuItem вы можете использовать привязку FindAncestor для доступа к ContextMenu:

<MenuItem Command="{x:Static CCC}"
    CommandTarget="{Binding PlacementTarget,
        RelativeSource={RelativeSource AncestorType=ContextMenu}}"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...