0

我在后面的代码中填充我的数据网格,如下所示:

var customers = from c in _db.Customers
                select c;
TheDataGrid.ItemsSource = customers.ToList();

在我下面的 XAML 中,DataGrid.RowBackground 有效,但DataGridHeaderBorder在运行时的代码隐藏中收到错误“在使用 ItemsSource 之前,项目列表必须为空” 。

这很奇怪,因为我只是想更改 Datagrid 标题的颜色,但 ItemsSource 有问题。如果我取出 DataGridHeaderBorder 行,它工作正常。

那么如何简单地更改 Datagrid 上列标题的颜色呢?

        <toolkit:DataGridHeaderBorder Background="yellow"/>

        <toolkit:DataGrid.RowBackground>
            <LinearGradientBrush EndPoint="-0.136,-0.163" StartPoint="1.291,1.248">
                <GradientStop Color="#FFA8A929" Offset="0.004"/>
                <GradientStop Color="#FFF7F7ED" Offset="0.991"/>
            </LinearGradientBrush>
        </toolkit:DataGrid.RowBackground>
4

1 回答 1

1

每当您将元素放入元素中时,XAML 解析器都必须确定子元素是否是复杂的属性分配(正如您正在尝试做的那样),或者您是否打算将子元素作为父元素的“内容”元素。因为您的问题“DataGridHeaderBorder”标签不是以“toolkit:DataGrid”开头,所以假设您正在尝试将 DataGrid 的 content 属性(恰好是 Items)设置为此值。

我无法尝试此操作,但我猜您需要将问题标签替换为以下内容:

<toolkit:DataGrid.RowHeaderStyle>
    <Style TargetType="{x:Type toolkit:DataGridRowHeader}">
        <Setter Property="Background" Value="Yellow" />
    </Style>
</toolkit:DataGrid.RowHeaderStyle>
于 2009-03-26T19:57:48.723 回答