.net - 根据上下文值更改 DataGridCell 的背景颜色。 (WPF)

标签 .net wpf xaml datagrid

我想根据上下文值更改 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/

相关文章:

.net - ConvertEmptyStringToNull 属性

.net - 我在哪里可以找到 System.Windows.Interactivity 作为可再分发?

c# - 在 DataTriggers 中重用 ControlTemplate

WPF 数据绑定(bind)数据网格过滤/搜索

WPF ListView 列标题对齐

.net - 使用 Powershell TOM 在 SSAS 表格中创建分区

.net - DB2 .NET提供者建议

c# - 文本 block 行高

xaml - Xamarin Forms Listview圆角单元格突出显示灰色

c# - 在 SelectedItemChanged 事件中更改 WPF TreeView SelectedItem