ERLEDIGT
JA
JA
ANTWORTEN
0
0
ZUGRIFFE
883
883
EMPFEHLEN
-
18.04.10 23:25 #1
- Registriert seit
- Apr 2007
- Beiträge
- 1
Hallo,
ich habe folgendes Problem.
Ich habe eine ListView, in welcher, abhängig von einem Boolflag, die Background Color der Items entweder LightGreen oder White ist.

Window1.xaml
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
<Window x:Class="WpfApplication1.Window1" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="ListView" Height="300" Width="300"> <Window.Resources> <Style TargetType="{x:Type ListViewItem}"> <Style.Triggers> <DataTrigger Binding="{Binding Path=BoolFlag}" Value="True"> <Setter Property="Background" Value="LightGreen" /> </DataTrigger> </Style.Triggers> </Style> </Window.Resources> <StackPanel> <ListView ItemsSource="{Binding Path=Personen}" SelectionMode="Single" SelectionChanged="ListViewSelectionChanged"> <ListView.View> <GridView> <GridViewColumn DisplayMemberBinding="{Binding Path=Vorname}" Header="Vorname" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Nachname}" Header="Nachname" /> <GridViewColumn DisplayMemberBinding="{Binding Path=Alter}" Header="Alter" /> <GridViewColumn DisplayMemberBinding="{Binding Path=BoolFlag}" Header="BoolFlag" /> </GridView> </ListView.View> </ListView> </StackPanel> </Window>
Window1.xaml.cs
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
public partial class Window1 : Window { private IList<Person> _personen = new List<Person>(); public Window1() { _personen.Add(new Person { Vorname = "Max", Nachname = "Mustermann", Alter = 18, BoolFlag = false, }); _personen.Add(new Person { Vorname = "Karl", Nachname = "Mayer", Alter = 27, BoolFlag = true, }); _personen.Add(new Person { Vorname = "Josef", Nachname = "Huber", Alter = 38, BoolFlag = false, }); DataContext = this; InitializeComponent(); } public IList<Person> Personen { get { return _personen; } } private void ListViewSelectionChanged(object sender, SelectionChangedEventArgs e) { Person person = e.AddedItems[0] as Person; if (person != null) { if (person.BoolFlag) { this.Resources[SystemColors.HighlightBrushKey] = Brushes.Green; } else { this.Resources[SystemColors.HighlightBrushKey] = Brushes.RoyalBlue; } } } }
Person.cs
Code :1 2 3 4 5 6 7 8 9 10
public class Person { public string Vorname { get; set; } public string Nachname { get; set; } public int Alter { get; set; } public bool BoolFlag { get; set; } }
Jetzt möchte ich, wenn ich ein Item selektiere, dessen Farbe ebenfalls abhängig von dem Boolflag auf Green bzw. Blue setzen.
Im Code-Behind funktioniert das schon recht gut, indem einfach der Default-Wert von HighlightBrushKey überschrieben wird:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
private void ListViewSelectionChanged(object sender, SelectionChangedEventArgs e) { Person person = e.AddedItems[0] as Person; if (person != null) { if (person.BoolFlag) { this.Resources[SystemColors.HighlightBrushKey] = Brushes.Green; } else { this.Resources[SystemColors.HighlightBrushKey] = Brushes.RoyalBlue; } } } }
Mein eigentliches Problem ist nun, dass ich das ganze im XAML definieren will.
Mit
kann ja der Default-Wert in XAML überschrieben werden.Code :1
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Green" />
Jedoch gild dieser Wert dann für alle selektierten Items.
Meine Frage ist jetzt:
Wie kann ich im XAML den Default-Wert von HighlightBrushKey, abhängig vom Boolflag, mit einer eigenen Farbe überschreiben?
Ich hoffe, ich habe mich verständlich ausgedrückt und ihr könnt mir weiter helfen.
Besten Dank schonmal.
Ähnliche Themen
-
ListView fehlerhafte Darstellung ab 1000 Items
Von Leroux im Forum .NET Windows FormsAntworten: 4Letzter Beitrag: 09.09.09, 11:16 -
ListView Items verschieben
Von nicok im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 02.09.08, 08:38 -
ListView.Items.Add() aus einem Thread?
Von lordfritte im Forum .NET Windows FormsAntworten: 3Letzter Beitrag: 26.04.08, 17:08 -
ListView Items Add Frage
Von xeEEenon im Forum .NET ArchivAntworten: 2Letzter Beitrag: 09.10.07, 15:09 -
Unterschiedliche Farben beim Rendern
Von FHPower im Forum 3D Studio MaxAntworten: 8Letzter Beitrag: 25.11.04, 16:39





Zitieren
Login




