Cuadro de lista elemento WPF, color de fondo diferente para artículos diferentes

Tengo un ListBox de WPF que contiene una lista enlazada de elementos de una clase específica que tengo. Algo como esto:

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

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

Todo funciona bien. Lo que quiero hacer ahora es tener un fondo diferente para cada elemento en el ListBox dependiendo de cierta propiedad de la clase. Por ejemplo, digamos que la clase MyTable tiene una propiedad llamada isOccupied. Si este indicador está establecido para un determinado artículo, quiero que tenga un fondo rojo en el ListBox, si no lo está, entonces quiero tenerlo con un fondo verde. Si la propiedad cambia, entonces el fondo debería cambiar en consecuencia.

¿Algún consejo sobre cómo lograr esto? Estoy buscando algo de información sobre ItemContainerStyle en este momento pero soy relativamente nuevo en esto, así que no estoy seguro si estoy siguiendo el camino correcto.

Respuestas a la pregunta(2)

Su respuesta a la pregunta