我知道這個問題被問了很多,但我只在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