1

私は WPF アプリケーションを作成しています。データ グリッドがあり、すべての列の幅が「自動」に設定されています。テーブルのスクロールを開始すると、列の一部が拡大し始めます。最初の列の最長データ (スクロール時に列を展開せずに)?

4

2 に答える 2

0

これは、の仮想化によるものDataGridです。表示されているアイテムのみがレンダリングされ、スクロールの場合はコントロールが再利用されます (アクティブにしている場合)。最長の要素がまだレンダリングされていないため、幅は正しくありません。リスト コントロールは非常にうまく機能しますが、多くの項目をバインドすることもできます。

2つのオプションがあると思います

  1. 表示するアイテムが多くない場合は、仮想化をオフにすることが適切な解決策である可能性があります。私はそれを試していないことを認めなければならないので、保証はありません. でオフにできます<DataGrid VirtualizingStackPanel.IsVirtualizing="False"/>VirtualizationStackPanelplsの詳細については、こちらをご覧ください。

  2. 別の解決策が考えられますTextTrimming。テキストが長すぎる場合に表示TextBlocksできます。Ellipsesそのため、カスタム データ テンプレートを列に割り当てて、以下をコンテンツとして配置する必要があります<TextBlock Text="{Binding}" TextTrimming="WordEllipsis"/>CellEditingTemplateユーザーが値を編集できるようにする場合は、 customer も指定する必要があることに注意してください。詳細については、こちらTextTrimmingをご覧ください。全体がどのように機能するかについては、こちらをご覧ください。DataTemplateDataGrids

于 2013-04-15T11:37:35.730 に答える
0

表示されたデータがより多くのスペースを必要とするときに拡張するwpfの列幅を設定するとAuto、この作業は自動的に行われます。

于 2013-04-15T10:24:01.690 に答える