Почему это не изменит цвет моих заголовков WPF Datagrid? - PullRequest
0 голосов
/ 26 марта 2009

Я заполняю свою сетку данных в следующем коде:

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

В моем XAML ниже DataGrid.RowBackground работает, но DataGridHeaderBorder получает ошибку «Список элементов должен быть пустым до использования ItemsSource» в коде после выполнения.

Это странно, потому что я просто пытаюсь изменить цвет заголовков Datagrid, и возникает проблема с ItemsSource. Если я возьму строку DataGridHeaderBorder, она будет работать нормально.

Так как же просто изменить цвет заголовков столбцов в таблице данных?

        <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>

1 Ответ

1 голос
/ 26 марта 2009

Каждый раз, когда вы помещаете элементы в элементы, синтаксический анализатор XAML должен решить, являются ли подэлементы сложными присваиваниями свойств (как вы пытаетесь это сделать), или вы намерены подэлементами быть "содержимым" родительского элемента. Поскольку ваш проблемный тег «DataGridHeaderBorder» не начинается с «toolkit: DataGrid», предполагается, что вы пытаетесь установить для свойства содержимого DataGrid (которое является «Предметы») это значение.

Я не в состоянии попробовать это, но я думаю, вам нужно заменить тег проблемы на что-то вроде:

<toolkit:DataGrid.RowHeaderStyle>
    <Style TargetType="{x:Type toolkit:DataGridRowHeader}">
        <Setter Property="Background" Value="Yellow" />
    </Style>
</toolkit:DataGrid.RowHeaderStyle>
...