0

フィルターの選択に TreeView を使用しています。

TreeView のさまざまなカテゴリがさまざまなフィルターを開始し、実行に最大 3 秒かかる場合があります。

各カテゴリには独自のコンテキスト メニューがあり、名前の変更、削除などを行うことができます。

ユーザーが右クリックした項目をユーザーに見えるようにしたい。途中で、右クリックイベントでアイテムを選択することになります。ただし、これにより、関連するフィルターが実行されるため、メニューの読み込みが遅くなります。

では、コンテキスト メニュー表示イベントで特定の項目を強調表示するにはどうすればよいでしょうか。

ありがとう

4

1 に答える 1

0

コンテキスト メニューの 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>

明らかに、テキストを赤くするよりも適切なことを選択できます (背景を選択したように見せるなど) が、それが一般的な考え方です。

于 2011-01-06T19:47:22.997 に答える