WPF DataGrid,在DataGrid上选择行颜色SelectedItem在MVVM中更改

时间:2014-06-08 17:38:58

标签: c# wpf xaml mvvm datagrid

我有一个WPF DataGrid,当我通过集合添加新项目时,我在MVVM中使用C#选择新项目(行)

// Adding the new item (which will create a new row)
ItemSourceCollection.Add(object);

// The itemSource would have refreshed, so now assign the SelectedItem of the grid
SelectedItem = ItemSourceCollection.Where(x => x.Id == Id).FirstOrDefault();

选择行时效果很好。但是,行颜色与用户实际单击该行时的颜色不匹配。

所选行颜色的xaml

<DataGrid.Resource>
    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" 
               Color="#FF0000"/>
 </DataGrid.Resource>

当通过代码将新行添加到集合中时,是否可以使用此颜色?

1 个答案:

答案 0 :(得分:2)

问题是由于所选项目具有焦点以及何时没有焦点时存在不同的画笔。所以你需要设置焦点或添加这个

<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="#FF0000"/>

DataGrid.Resources。如果你将使用.NET 4.5,那么就有专用的刷子,你需要添加

<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="#FF0000"/>