2

列の1つ(アクション列)のコンボボックス選択に基づいてrowdetailsデータテンプレートを変更するWPFデータグリッドがあります。行詳細テンプレートの 1 つが大きく、データグリッド用に提供されたスペースでは行詳細を完全に表示できないため、詳細が切り取られています。下にスクロールしようとすると、現在のレコードの残りの行の詳細ではなく、次のレコードが表示されます。つまり、レコードを部分的にスクロールすることはありません。

例: (フィールドが一番下で切り取られていることに注意してください。表示されていない他のレコードがあります。次のレコードが表示されたらスクロール バー ボタンをクリックすると、このレコードがすべて上に移動して表示されなくなります。 ) ここに画像の説明を入力

質問:

データグリッドのスクロール機能をレコードからレコードへ移動するだけでなく、特大の行詳細を表示する方法はありますか?

解決:

以下の受け入れられた回答に従って、データグリッド スタイルに以下を追加しました。

<Style TargetType="{x:Type DataGrid}">
   <Setter Property="VirtualizingPanel.ScrollUnit" Value="Pixel" />
</Style>
4

1 に答える 1

5

これは、.NET 4.5 を使用している場合に左右されますが、役立つ場合があります。

VirtualizingPanel.ScrollUnit添付プロパティを使用すると、次のスクロール動作を変更できますDataGrid

スクロールがコレクション内の項目として測定されるか、ピクセルとして測定されるかを示す値を取得します。

を使用するVirtualizingPanel.ScrollUnit="Pixel"のではなく、Item目的の方法でスクロールできるようにする必要があります。

4.5 を使用していない場合はScrollViewer、テンプレートで a を使用して何かを作成する必要がある場合があります。

于 2013-09-25T20:29:10.480 に答える