Frage

Ich fülle mein Datagrid in Code-behind wie folgt aus:

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

In meinem XAML unten arbeitet die DataGrid.RowBackground aber die DataGridHeaderBorder werden die Fehlermeldung „Die Auflistung Elemente, vor dem Einsatz von Itemssource muss leer sein“ in dem Code-Behind auf Laufzeit.

Das ist seltsam, weil ich gerade bin versucht, die Farbe der Datagrid-Header zu ändern und es wird ein Problem mit Itemssource. Wenn ich die DataGridHeaderBorder Linie aus nehmen, es funktioniert gut.

Also wie kann man einfach die Farbe der Spaltenüberschriften auf einem Datagrid ändern?

        <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>
War es hilfreich?

Lösung

Jedes Mal, dass Sie Elemente innerhalb von Elementen setzen, hat der XAML-Parser zu entscheiden, ob die Teilelemente sind komplexe Eigenschaftszuweisungen (wie Sie versuchen zu tun), oder ob Sie die Unterelemente beabsichtigen, der „Inhalt“ zu sein des Mutterelements. Weil Ihr Problem „DataGridHeaderBorder“ Tag nicht mit „Toolkit: Datagrid“ beginnt. Wird angenommen, dass Sie versuchen, die Datagrid Inhalt Eigenschaft festlegen auf diesen Wert

(die Artikel werden passiert)

Ich bin nicht in der Lage, dies zu versuchen, aber ich würde vermuten, das Problem Tag mit so etwas wie ersetzen müssten:

<toolkit:DataGrid.RowHeaderStyle>
    <Style TargetType="{x:Type toolkit:DataGridRowHeader}">
        <Setter Property="Background" Value="Yellow" />
    </Style>
</toolkit:DataGrid.RowHeaderStyle>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top