Listbox WPF-Element, verschiedene Hintergrundfarben für verschiedene Elemente

Ich habe eine WPF-ListBox mit einer gebundenen Liste von Elementen aus einer bestimmten Klasse, die habe ich. So etwas wie dieses:

    ObservableCollection<MyTable> tables = new ObservableCollection<MyTable>();
...
    listTables.ItemsSource = tables;

Und XAML:

<ListBox HorizontalAlignment="Left" Margin="8,10,0,0" Name="listTables" Width="153" ItemsSource="{Binding tables}" SelectionChanged="listTables_SelectionChanged" Height="501" VerticalAlignment="Top">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <Grid Margin="1">
                    <TextBlock Grid.Column="1" Text="{Binding tableName}" />
                </Grid>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Alles Prima funktioniert. Was ich jetzt machen möchte, ist einen anderen hintergrund für jedes Element in der ListBox in Abhängigkeit einer bestimmten Eigenschaft der Klasse. Zum Beispiel, sagen wir mal, dass der MyTable-Klasse hat eine Eigenschaft namens isOccupied. Wenn dieses flag festgelegt ist, für eine bestimmte Sache, ich will es haben einen roten hintergrund in der ListBox, wenn es nicht ist, dann möchte ich es mit einem grünen hintergrund. Wenn die Eigenschaft geändert wird, dann sollte der hintergrund ändert sich entsprechend.

Irgendwelche Tipps, wie dies zu erreichen? Ich Suche einige Informationen über ItemContainerStyle im moment, aber ich bin relativ neu hier, also bin ich nicht sicher, ob ich auf dem richtigen Weg.

InformationsquelleAutor mmvsbg | 2013-11-20
Schreibe einen Kommentar