![](/img/trans.png)
[英]Datagrid: background colour + disable of selection depending on the cell value - using trigger
[英]Changing background color for WPF DataGrid cell depending on selection and value
我正在尝试实现这一点: 当用户在DataGrid中选择一个或多个单元格时,所有重复项的背景色都应更改 。
我有这个xaml
<Window x:Class="NotesOnFretboard.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="true" Margin="12,110,12,29" Name="dataGrid1" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" IsReadOnly="True" />
</Grid>
</Window>
后面的代码:
public MainWindow()
{
InitializeComponent();
DataTable dt = CreateDataTable();
dataGrid1.ItemsSource = dt.DefaultView;
}
因此,我使用DataTable(10行,25列)填充了数据网格。 在此数据表中,有许多重复值。
当用户在DataGrid中选择一个或多个单元格时,所有重复项的背景色都应更改!
请帮忙!
//安德斯
您可以更改集合类,使其具有指示是否应突出显示该属性的属性,然后将该属性(通过转换器)绑定到要更改颜色的element属性。 您可以响应选择/单击,然后根据所需条件将ItemSource的“ selected”属性更改为true / false。
所以像这样:
<sdk:DataGrid x:Name="NoteList"
AutoGenerateColumns="False"
GridLinesVisibility="None"
HeadersVisibility="None"
IsReadOnly="True"
ItemsSource="{Binding NoteList,Mode=OneWay}">
<sdk:DataGrid.Columns>
<sdk:DataGridTemplateColumn Width="Auto">
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox Text="{Binding NoteDescription, Mode=OneWay}"
Background="{Binding NoteHighlighted,
Converter={StaticResource BooleanToColourConverter}}"/>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
您应该使用触发器来实现这一全面指南:设置Microsoft WPF数据网格的样式
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.