WPF: выделение элемента TreeView, отображающего контекстное меню - PullRequest
0 голосов
/ 06 января 2011

Я использую TreeView для выбора фильтров.

Различные категории в TreeView запускают разные фильтры, запуск которых может занять до 3 секунд.

Каждая категория имеет свое собственное контекстное меню, в котором вы можете переименовывать, удалять и т. Д.

Я хочу, чтобы пользователю было видно, по какому элементу он щелкнул правой кнопкой мыши. По пути можно было бы выбрать пункт по событию правой кнопкой мыши. Но это заставляет меню загружаться медленно, так как запускает соответствующий фильтр.

Итак, как я могу выделить данный элемент в событии отображения контекстного меню?

Спасибо

1 Ответ

0 голосов
/ 06 января 2011

Запустить установщик стиля, связанный со свойством IsOpen контекстного меню. Я получил это, чтобы работать с помощью DataTrigger в стиле на элемент, как это:

<Style TargetType="{x:Type TreeViewItem}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding ContextMenu.IsOpen, RelativeSource={RelativeSource Self}}" Value="True">
            <Setter Property="Foreground" Value="Red"/>
        </DataTrigger>
    </Style.Triggers>
</Style>

Очевидно, что вы можете выбрать что-то более подходящее, чем сделать текст красным (например, возможно, фон будет выделен), но это общая идея.

...