C# 如何设置datagrid中依赖于数据输入的单元格的背景
无论单元格的值是否等于用户输入的TextBox.Text,我都希望在DataGrid中呈现单元格的背景色。C# 如何设置datagrid中依赖于数据输入的单元格的背景,c#,wpf,datagrid,C#,Wpf,Datagrid,无论单元格的值是否等于用户输入的TextBox.Text,我都希望在DataGrid中呈现单元格的背景色。 我该怎么办?有人能帮我吗?你没有透露太多关于DataGrid是如何使用的,或者它显示什么样的数据 例如,如果自动生成文本列,可以使用转换器突出显示背景,例如: public class HighlightConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType,
我该怎么办?有人能帮我吗?你没有透露太多关于
DataGrid
是如何使用的,或者它显示什么样的数据
例如,如果自动生成文本列,可以使用转换器突出显示背景,例如:
public class HighlightConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
string text = values[0] as string;
TextBlock textBlock = values[1] as TextBlock;
return !string.IsNullOrEmpty(text) && textBlock?.Text == text ? Brushes.Yellow : Brushes.White;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
XAML:
<TextBox x:Name='tb' />
<DataGrid>
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Background">
<Setter.Value>
<MultiBinding>
<MultiBinding.Converter>
<local:HighlightConverter />
</MultiBinding.Converter>
<Binding Path="Text" ElementName="tb" />
<Binding Path="Content" RelativeSource="{RelativeSource Self}" />
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</DataGrid.CellStyle>
</DataGrid>