Ich möchte Textfarbe der Zellen basierend auf Wert ändern, die Zelle enthält Ich verwende einen Wertkonverter, aber irgendwie der Typ des Objekts, das an Convert-Funktion übergeben wird, ist DataRowView und Ich möchte die Zelle weitergeben, weil ich auf der Grundlage ihres Wertes eine Zelle auf einmal beleuchten möchte. Hoffnung, die Sinn macht.wpf Farbe die Zellen in DataGrid Basierend auf Wert
Danke !!
-Code, wenn Stil, den ich Datagrid anwenden:
<UserControl.Resources>
<local:MyBkColorConverter x:Key="bkColorCvrt"/>
<Style x:Key="GridStyle" TargetType="DataGrid">
<Setter Property="ItemsSource" Value="{Binding}" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="RowBackground" Value="Transparent" />
<Setter Property="HeadersVisibility" Value="None" />
<Setter Property="GridLinesVisibility" Value="None" />
<Setter Property="SelectionUnit" Value="Cell" />
<Setter Property="SelectionMode" Value="Single" />
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="HorizontalScrollBarVisibility" Value="Disabled" />
<Setter Property="CellStyle">
<Setter.Value>
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Foreground">
<Setter.Value>
<Binding Converter="{StaticResource bkColorCvrt}"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Black">
</Setter>
</Trigger>
</Style.Triggers>
</Style>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
und die C# Teil:
public class MyBkColorConverter: IValueConverter { #region IValueConverter Mitglieder
public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
//The type of value here is actually DataRowView
//here i would like to have a cell passed. is that possible to archive?
return Brushes.LightGray;
}
public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
Mein Gitter ist an DataTable gebunden, daher definiere ich selbst keine Spalten. Wo füge ich diesen Code ein? – Anya
Wenn Sie wissen, welche Spalten zu Ihrer Quellzeile gehören, können Sie sie wie oben beschrieben binden. Zum Beispiel haben Sie Mitarbeiter Datentabelle und Name ist die Spalten, dann wird das obige gut funktionieren. – JSJ