0
以下DataGrid以細列開頭,然後快速跳出到下面XAML中定義的寬度。WPF XAML奇怪的列寬行爲
如何從一開始就描述列寬,而不需要初始行爲?
<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>
需要一些上下文......聽起來佈局過程正在重新決定可用空間的填充。但是,請刪除不需要的所有屬性以重現問題......我們對「ui:MultiSelectionSyncHandler.ItemFilter」等事物一無所知,並且它對我們不想知道的問題沒有貢獻。但如果是這樣,你必須包含代碼。 – grek40
謝謝! ...剝去了所有東西......並將寬度改爲常量......它更喜歡這個......但我不想要常量!我認爲數字搗弄是無法問的,它也不會是我的電腦! – JohnG79
當我在'Loaded'事件中設置數據上下文而不是構造函數或添加多個項目時,我得到了與遠程類似的東西(並非真正描述的內容)。它與RowHeader僅在第一行變爲可見之後才佔用其空間有關,並且當項目超過可見區域時出現滾動條,並在左側留出一些空間。這兩種情況都會強制進行重新佈局,因爲列的可用大小會發生變化,但所有列都不會從所有列開始摺疊到左側。您需要顯示DataGrid的父容器,以便我們知道它們的佈局行爲。 – grek40