Das folgende DataGrid beginnt mit dünnen Spalten und springt dann schnell zu den definierten Breiten in der XAML-Datei.WPF XAML Seltsames Spaltenbreitenverhalten
Wie können wir die Spaltenbreiten wie beschrieben von Anfang an ohne das anfängliche Verhalten machen?
<DataGrid ItemsSource="{Binding Orders}" Name="_dataGridOrders" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Order Number" Binding="{Binding OrderNumber}" Width="3.3*"/>
<DataGridTextColumn Header="Numeric ID" Binding="{Binding NumericId}" Width="3*"/>
<DataGridTextColumn Header="Ship To" Binding="{Binding ShipTo}" Width="4*"/>
<DataGridTextColumn Header="Order Date" Binding="{Binding OrderDate}" Width="5*"/>
<DataGridTextColumn Header="Calculated Weight" Binding="{Binding CalculatedWeight}" Width="4*"/>
<DataGridTextColumn Header="# Items" Binding="{Binding ItemsNumber}" Width="3*"/>
<DataGridTextColumn Header="Tracking" Binding="{Binding TrackingNumbers}" Width="6*"/>
</DataGrid.Columns>
</DataGrid>
Brauchen Sie etwas Kontext ... klingt wie der Layout-Prozess entscheidet über den verfügbaren Platz zu füllen. Bitte entfernen Sie jedoch alle Eigenschaften, die nicht benötigt werden, um das Problem zu reproduzieren ... wir wissen nichts von Dingen wie Ihrem 'ui: MultiSelectionSyncHandler.ItemFilter' und wenn es nicht zu dem Problem beiträgt, das wir nicht wissen wollen. Aber wenn dies der Fall ist, müssen Sie den Code einfügen. – grek40
Danke! ... strippte alles aus ... und änderte die Breite in Konstanten ... es mag das viel mehr ... aber ich will keine Konstanten! Ich denke, das Zahlenknacken ist zu viel verlangt und es wird auch nicht mein Computer sein! – JohnG79
Ich bekomme etwas entfernt ähnliches (nicht wirklich das, was Sie beschreiben), wenn ich den Datenkontext im Ereignis 'Loaded' anstelle des Konstruktors oder wenn viele Elemente hinzugefügt werden. Es bezieht sich auf den RowHeader, der sein Leerzeichen erst dann verwendet, wenn die erste Zeile sichtbar wird und die Bildlaufleiste erscheint, wenn Elemente den sichtbaren Bereich überschreiten und etwas Platz auf der linken Seite einnehmen. Beide Dinge erzwingen ein Re-Layout, da die verfügbare Größe für die Spalten geändert wird, aber keine von ihnen beginnt mit allen Spalten, die nach links kollabiert sind. Sie müssen die übergeordneten Container des DataGrids anzeigen, damit wir ihr Layoutverhalten kennen. – grek40