10 個の DataGridTemplateColumns を含む DataGrid を持つ WPF アプリがあります。オブジェクトのコレクションをデータ グリッドにバインドすると、それらはすべてグリッドに正常に表示されます。唯一の問題は、スクロールバーなしで画面に収まるよりも多くの行がある場合、列は画面上の値に合わせて自動サイズ調整されるだけです。たとえば、下にスクロールして、列 1 の値が収まらない行に到達すると、列 1 はそれに合わせて自動サイズ調整されます。これは本当に迷惑です。最初に画面に表示されているかどうかに関係なく、コレクション内のすべてのアイテムに合わせて自動サイズ調整する方法はありませんか? 各列の width プロパティを Auto に設定しようとしましたが、何もしませんでした。助けてくれてありがとう
1 に答える
1
この問題は、データグリッド内の行が仮想化されているために発生しています。したがって、画面に表示されていないアイテムは、表示する必要があるまで描画 (またはサイズを計算) する必要はありません。
次のように仮想化をオフにすることができます。
<DataGrid VirtualizingStackPanel.IsVirtualizing="False" HorizontalScrollBarVisibility="Hidden">
ただし、これを行うと、画面に表示されていない場合でもすべてのアイテムが「描画」されるため、多くのアイテムがある場合、データグリッドの読み込みが遅くなる可能性があることに注意してください。
于 2011-09-23T18:22:08.950 に答える