Как изменить цвет эллипса, который присутствует в сетке во время выполнения?
<DataGrid AutoGenerateColumns="False" Height="330" HorizontalAlignment="Left" Margin="5,70,0,0" Name="grdDeviceInfo" VerticalAlignment="Top"
CanUserAddRows="False" IsReadOnly="True" Width="368" HorizontalScrollBarVisibility="Auto">
<DataGrid.Columns>
<DataGridTextColumn Header="Channels" Width="100" Binding="{Binding ChannelNo}"></DataGridTextColumn>
<DataGridTextColumn Header="Label" Width="200" Binding="{Binding Label}"></DataGridTextColumn>
<DataGridTemplateColumn Header="Status" Width="60">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Ellipse Height="13" Name="grdfEllipse" Stroke="Black" Fill="{}" Width="20"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Код позади:
List<IOInformation> lstIOStatus = new List<IOInformation>();
for (int i = 0; i < channelStatus.Count(); i++)
{
// var columns = line.Split('\t');
lstIOStatus.Add(new IOInformation
{
ChannelNo = "Channel " + j++,
Label = labeldata[i],
MasterStatus = Convert.ToBoolean(channelStatus[i])
});
}
this.grdDeviceInfo.ItemsSource = lstIOStatus;
Я хочу изменить цвет эллипса на зеленый, если он истинный, или красный, если он ложный.
1 ответ
Решение
Вы можете использовать триггеры, чтобы сделать это. Вот ссылка на то, как лучше всего их использовать:
http://www.wpf-tutorial.com/styles/trigger-datatrigger-event-trigger/
Ваш код xaml будет выглядеть так:
<Ellipse Height="13" Name="grdfEllipse" Stroke="Black" Width="20">
<Ellipse.Style>
<Setter Property="Fill" Value="Red"/>
<Style TargetType="Ellipse">
<Style.Triggers>
<DataTrigger Binding="{Binding yourBinding}" Value="true">
<Setter Property="Fill" Value="Green"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Ellipse.Style>
</Ellipse>