2012-03-15 19 views
0

データグリッドで複数の行を選択できるこのタスクがあります。単一行が選択されている場合、スタイルはその行の周りに1ピクセルの境界線を表示することです。今度は、複数の行を選択すると、すべての行の周りに1pmの青色の境界線が1つのブロックとして表示されます。つまり、選択されたすべての行の周りの箱のようです。各行には独自の境界線がありません。どのように私はこれをスタイルできますか?Datagrid複数行の選択スタイル

+0

これは難しいでしょう。(特にどこから始めるべきかわからない場合) –

答えて

1

私はこれまでと同じようなことをしました。 DataGrid.ItemContainerStyleを目的に使用できます。 DataGridRow(アイテムコンテナのタイプ)のControlTemplateプロパティのスタイルを設定することができます。study this blog on how to do that。テンプレートには、新しい罫線を含める必要があります。

DataGridRowのIsSelectedプロパティは、ビューモデルまたは選択した行を収集するために使用するサービスを通知できるモデルの一部のプロパティ(行のデータ)にバインドする必要があります。 ControlTemplateに含まれるBorderは、StrokeThicknessを同じビューモデルまたはサービスにバインドする必要があります。次に、viewmodelまたはサービスを使用するバインディングでConverterを使用して、特定の行の境界線の太さを確認します。

このタスクは簡単ではありませんが、可能です。建築上の課題に直面するかもしれません。混乱を避けるためにMVVM、DIなどのパターンを使用します。

私はそれが役に立ちそうです。