Ich verwende ein DataGrid in WPF, um Werte anzuzeigen. Jetzt möchte ich grüne und rote Reihen haben. Ich habe es mit DataTrigger ausprobiert, aber nichts passiert.WPF DataGrid Set Style durch Bindung
Meine XAML:
<DataGrid x:Name="dgAbos" ItemsSource="{Binding Source=AboList}" HorizontalAlignment="Stretch" Margin="10,30,10,10" VerticalAlignment="Stretch" Height="Auto" Width="Auto">
<DataGrid.Columns>
<DataGridTextColumn Header="ItemID" Binding="{Binding ItemID}" />
</DataGrid.Columns>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding Active}" Value="false">
<Setter Property="Background" Value="Red"></Setter>
</DataTrigger>
<DataTrigger Binding="{Binding Active}" Value="true">
<Setter Property="Background" Value="Green"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
Der Bindungstyp ist:
ObservableCollection<OPCItem> AboList = new ObservableCollection<OPCItem>();
und das Element OPCItem anzuzeigen:
class OPCItem
{
public String ItemID { get; set; }
public String Name { get; set; }
public String Value { get; set; }
public DateTime DateTime { get; set; }
public String Group { get; set; }
private Boolean _Active;
public String Active
{
get
{
return (_Active == true ? "Aktiv" : "Inaktiv");
}
set
{
_Active = Convert.ToBoolean(value);
}
}
}
Wie ich die Liste zu füllen:
AboList.Add(new OPCItem { ItemID = Item.ItemID, Group = GroupName, Active = "true" });
Aber die Zeile ändert nicht die Farbe, warum?
omg ... Danke Mann, hat gut funktioniert;) – Phil795