Как получить PlacementTarget.Content в ContextMenu?

У меня есть ситуация, когда мне нужно получить Content из кнопки ContextMenu. Что-то вроде этого:

    <Button Content="Test" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75">
        <Button.ContextMenu>
            <ContextMenu>
                <MenuItem Header="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget.Content}"/>
            </ContextMenu>
        </Button.ContextMenu>
    </Button>

Но .. это не работает. Проблема может быть легко решена с помощью кнопки Tag, но Tag уже используется:

    <Button Content="Test" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="75"
            Tag="{Binding DataContext, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type StackPanel}, AncestorLevel=2}}">
        <Button.ContextMenu>
            <ContextMenu DataContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}">
                <MenuItem Header="{Binding RelativeSource={RelativeSource Self}, Path=PlacementTarget.Content}"/>
                <MenuItem Header="Option 2" />
            </ContextMenu>
        </Button.ContextMenu>
    </Button>

Я использую Tag для получения основного DataContext. Тем не менее мне все еще нужно содержание кнопки.

Зачем использовать «тег» из цели размещения, но «Контент» нет?

Как я могу его получить?

0
задан 13 August 2018 в 16:04

0 ответов

Другие вопросы по тегам:

Похожие вопросы: