<Grid Grid.Row="1" Width="500" Height="500">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Row="1"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Row="3"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Column="4"/>
<Ellipse Fill="Red" HorizontalAlignment="Center" Height="25" Margin="0,0,0,0" Stroke="Black" VerticalAlignment="Center" Width="25" Grid.Column="4" Grid.Row="4"/>
</Grid>
上記の XAML を考えると、プロパティが true の場合にドットを緑色にしたいと考えています。私は DataTrigger でそれを行うと仮定していますが、それを実行する唯一の方法は、楕円ごとに複製することです。それは私にはハックに思え、彼らがより良い解決策であるかどうか疑問に思っていました. 各楕円は単一のプロパティに基づいていますが、これも多くの重複コードのようです。理想的には、このビューが「ステーション」のリストの状態を反映し、ブール値を使用して利用可能かどうかを判断することです。それぞれの状態は一方向であり、ビューがアップしている間は変更されません。
私は、WPF と XAML で洗練されたソリューションを考え出すのは初めてです。完全なハックのように見えるので、何かを試みるたびにうんざりします。
編集: @Alastair の回答のおかげで、機能するようになりました。