如何根据“IsSelected”属性更改数据网格行的背景颜色?

7 浏览
0 Comments

如何根据“IsSelected”属性更改数据网格行的背景颜色?

我正在努力根据行的“IsSelected”属性来更改DataGridRow的颜色。我已经查看了所有的示例并尽力尝试了所有最佳方法,但仍然无法使其工作。实际上,在应用程序初始启动时它可以正常工作,但是当我更改DataGrid的“SelectedIndex”时,选定索引行会被突出显示,但颜色会恢复为默认值并且不会改变。

用户无法与此网格进行交互。所有操作都在后台代码中完成,包括行数和DataGrid中哪一行的“IsSelected”属性。我将Datagrid的“SelectedIndex”属性绑定到代码后台的属性值。正如注意到的那样,设置和更改该属性可以正常工作,并且在更改“SelectedIndex”属性时DataGrid的行可以正常突出显示。但是行的背景和前景颜色没有适当地改变。

我为DataGrid的行创建了一个RowStyle,代码如下:


“SelectedIndex”属性由另一个外部应用程序设置。它运行良好。这就是我如何改变哪一行被选中的方式。

将“SelectedIndex”设置为'1',然后在应用程序的初始启动中,它可以正常工作,这是我需要的效果。

DataGrid on initial start of application.  SelectedIndex = 1

现在,在应用程序打开的情况下,将DataGrid的“SelectedIndex”更改为'2',我希望网格中的第三行颜色变为红色,但实际上我得到的是:

enter image description here

它可以正常突出显示行索引,但颜色没有按照我的预期改变。

以下是定义DataGrid的XAML。在应用程序启动时,我在后台代码中设置了行和列的大小以及数据(datatable)。


    
        
    

非常感谢任何指导。谢谢。

0
0 Comments

问题的出现原因:需要根据"IsSelected"属性来改变DataGridRow的背景颜色。

解决方法:设置DataGridRow和DataGridCell的样式,根据"IsSelected"属性的值来改变背景颜色。



0