我想根据上下文值更改DataGridCell
的背景颜色。目前内容是文字。如图所示,我绑定到生成列的数据源。我不确定如何告诉DataTrigger
绑定到自己的值而不为每列指定标记。我有很多专栏,不希望有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 <=值<= 20)。
答案 0 :(得分:1)
您应该使用如下所示的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;
}
}
答案 1 :(得分:0)
请参阅以下代码段,其中显示了一个数据触发器,当绑定属性Background
时,该触发器将label
的{{1}}属性更改为绿色
等于“10”:
YourProperty