繁体   English   中英

根据选择和值更改WPF DataGrid单元格的背景颜色

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM