我知道这个问题被问了很多,但我只在XAML代码文件中看到它。
我在DataGrid扩展上工作,所以我在C#代码文件中,我想知道如何删除选定行的默认样式(在我的情况下,我不想在样式中进行任何更改,我在行中有一个图像标题显示哪个行被选中)。删除所选行的默认样式
侧面的问题,我们可以选择像“Ctrl”被按下,如何在C#代码?
感谢
编辑
我试试这个代码:
Style oRow = new Style(typeof(DataGridRow));
DataTrigger oTrigger2 = new DataTrigger();
Binding oBind = new Binding();
oBind.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(DataGridRow), 1);
oBind.Path = new PropertyPath(DataGridRow.IsSelectedProperty);
oTrigger2.Binding = oBind;
oTrigger2.Value = true;
oTrigger2.Setters.Add(new Setter(DataGridRow.BackgroundProperty, Brushes.Khaki));
oRow.Triggers.Add(oTrigger2);
this.RowStyle = oRow;
现在,我tryed把选择的背景卡其色测试。但我得到了旧的蓝色亮点。
编辑2
上Sinatr的思想基础,我改变DatagridRow为DatagridCell和止带:
Style oRow = new Style(typeof(DataGridCell));
DataTrigger oTrigger2 = new DataTrigger();
Binding oBind = new Binding();
oBind.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, typeof(DataGridRow), 1);
oBind.Path = new PropertyPath(DataGridRow.IsSelectedProperty);
oTrigger2.Binding = oBind;
oTrigger2.Value = true;
oTrigger2.Setters.Add(new Setter(DataGridCell.BackgroundProperty, null));
oTrigger2.Setters.Add(new Setter(DataGridCell.BorderBrushProperty, null));
oRow.Triggers.Add(oTrigger2);
this.RowStyle = oRow;
我只需要得到该行设置前景的前景的细胞。但我有一个新的问题,解决方案,可以将背景设置为空或我应该将其绑定到thr行背景?
我认为你必须rest' DataGrid.RowStyle'。不要为'Selector.IsSelected'添加任何触发器,那么所有行的外观应该是相同的。 – Sinatr 2014-11-04 14:26:45
我在做Edit之前尝试,它不起作用。那就是为什么我尝试改变卡其色的颜色 – Northik 2014-11-05 14:16:36