2011-01-06 4 views
0

Ich benutze eine TreeView für Filter Auswahl.WPF: Highlight TreeView Item Anzeigen Kontext Meu

Verschiedene Kategorien auf der TreeView starten verschiedene Filter, die bis zu 3 Sekunden dauern können.

Jede Kategorie hat ein eigenes Kontextmenü, in dem u umbenennen, löscht usw.

ich es für den Benutzer sichtbar machen will, auf dem Punkt er rightclicked. Auf dem Weg wäre es, den Gegenstand auf dem Rechtsklick-Event auszuwählen. Dies führt jedoch dazu, dass das Menü langsam geladen wird, da der zugehörige Filter ausgeführt wird.

Also, wie kann ich ein bestimmtes Element in einem Kontext-Menü-Display-Ereignis hervorheben?

Dank

Antwort

0

-Trigger ein Stil-Setter der IsOpen Eigenschaft-Menü Kontext gebunden. Ich habe dies wie folgt auf den Punkt ein Datatrigger in einem Stil mit arbeiten:

<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> 

Offensichtlich Sie etwas besser geeignet zu tun, als Drehen Sie den Text rot (wie vielleicht so dass der Hintergrund ausgewählt aussehen) wählen können, aber das ist die allgemeine Idee.

+0

Es sieht so aus, als würde für jedes Baumansichtselement eine separate ContextMenu-Instanz erforderlich sein, was unbequem sein könnte. –

+0

Ich habe bereits ein anderes Kontextmenü, basierend auf der Filtergruppe. – Amirshk