更新2:通過Xceed文檔和Xceed論壇我發現,你必須設置RowSelectorStyle每個DataRow的瀏覽。
<Grid.Resources>
<Style x:Key="mySelectorStyle" TargetType="{x:Type xcdg:RowSelector}">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="BorderBrush" Value="DarkGreen"/>
</Style>
<Style TargetType="{x:Type xcdg:DataRow}">
<Setter Property="xcdg:RowSelector.RowSelectorStyle"
Value="{StaticResource mySelectorStyle}" />
</Style>
</Grid.Resources>
更新3 你是對的,我錯過了行部分外的部分:rowselectorpane本身。不幸的是,這是不可風格的。 有2個選項:
重寫TableViewScrollViewer的ControlTemplate的Xceed論壇的建議。但這是xaml的大部分工作的繁瑣複製粘貼工作,並且改變了您希望以自己的方式使用它的小部分。
或者以下的小黑客:
private void dataGridLoaded(object sender, RoutedEventArgs e)
{
var rowSelectorPane = TreeHelper.FindVisualChild<RowSelectorPane>(_dataGrid);
if (rowSelectorPane != null)
{
rowSelectorPane.Background = Brushes.LightGreen;
}
}
public static class TreeHelper
{
public static TChildItem FindVisualChild<TChildItem>(DependencyObject obj) where TChildItem : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is TChildItem)
return (TChildItem)child;
TChildItem childOfChild = FindVisualChild<TChildItem>(child);
if (childOfChild != null)
return childOfChild;
}
return null;
}
}
的XAML: <xcdg:DataGridControl ItemsSource="{Binding}" Name="_dataGrid" Loaded="dataGridLoaded" etc...>
這似乎在RowSelectorPane一半工作,因爲它的數據行只顏色。那麼在ColumnManagerCells的區域周圍或數據尚未設置的區域呢?當然,我非常感謝你的幫助,如果這些不能修改,那麼這將不得不做 – Seb
看起來我有很多工作在我面前。非常感謝你的幫助。 – Seb