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