Laden...

Property Trigger in Data Template

Erstellt von AJ_Styles vor 14 Jahren Letzter Beitrag vor 14 Jahren 1.325 Views
A
AJ_Styles Themenstarter:in
64 Beiträge seit 2008
vor 14 Jahren
Property Trigger in Data Template

Hallo!

Ich habe folgendes Data Template:


<DataTemplate>
   <Border x:Name="brd" BorderThickness="4" CornerRadius="12">
     <TextBlock Name="text" Text="{Binding Path=Name}" FontSize="20">
   </Border>
<DataTemplate.Triggers>
   <DataTrigger Binding="{Binding Path=Role}" Value="Admin">
       <Setter TargetName="text" Property="Foreground" Value="Red" />
   </DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>

Dieses wird auf Items in einer Listbox angewandt.
Jetzt möchte ich dass bei einem Click auf eines der Items der Hintergrund farbig hervorgehoben wird.
Mit einem Property Trigger funktioniert dies allerdings nicht:


<Trigger Property="IsSelected" Value="true">
   <Setter Property="Background" Value="Yellow"></Setter>
</Trigger>

Die hierdurch generierte Fehlermeldung lautet:
"Cannot find the Template Property 'IsSelected' on the type 'System.Windows.Controls.ContentPresenter'."

Bei einem Control Template hat es so funktioniert.

Irgendwelche Ideen?

446 Beiträge seit 2004
vor 14 Jahren

Hallo!

Die hierdurch generierte Fehlermeldung lautet:
"Cannot find the Template Property 'IsSelected' on the type 'System.Windows.Controls.ContentPresenter'."

Bei einem Control Template hat es so funktioniert.

Irgendwelche Ideen?

Die Fehlermeldung gibt dir den entscheidenden Hinweis. Der DataContext innerhalb des Datatemplates ist auf ContentPresenter gesetzt. Die Klasse ContentPresenter hat keine Property IsSelected. Deshalb auch die Fehlermeldung.

Wenn du überprüfen willst, ob ein ListBixItem Selected ist must du also auf die Klasse ListBoxItem zugreifen.

Das kannst du mit der RelativeSource.

Achja dafür must du den Datatrigger verwenden.

Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}}, Path=IsSelected}

Siehe auch:

http://get-the-solution.net/2009/03/28/listbox-selecteditem-zusatzinformationen-anzeigen/

Schaut mal im IRC vorbei:
Server: https://libera.chat/ ##chsarp

A
AJ_Styles Themenstarter:in
64 Beiträge seit 2008
vor 14 Jahren

Vielen Dank für Deine Hilfe! (Ich sag einfach mal "Du" zu Ihnen)