我想根据上下文值更改 DataGridCell
的背景颜色。目前内容是文本。如图所示,我绑定(bind)到生成列的数据源。我不确定如何告诉 DataTrigger 绑定(bind)到它自己的值而不为每列指定标签。我有很多列,并且不希望有 50 个 DataTrigger
标记。
这是我的 xaml:
<DataGrid x:Name="Grid" ItemsSource="{Binding}">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<Trigger Property="TextBlock.Text" Value="10"/>
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>
最终我想提供一系列满足触发器的值。例如 10 到 20 之间的任何值(10 <= value <= 20)。
最佳答案
您应该使用如下所示的 TemplateColumn,并在 Loaded 事件处理程序中检查条件并采取操作。
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Area, Mode=TwoWay, UpdateSourceTrigger=LostFocus}" Loaded="TextBox_Loaded"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
private void TextBox_Loaded(object sender, RoutedEventArgs e)
{
var tb = ((TextBox)sender);
if (tb.Text == 10)
{
tb.Background = Brushes.Plum;
}
}
关于.net - 根据上下文值更改 DataGridCell 的背景颜色。 (WPF),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34258525/