我有一个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>
当通过代码将新行添加到集合中时,是否可以使用此颜色?
答案 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"/>