質問

リストビューのソースとしてグループ化されたCollectionViewSourceを使用する場合、listView.gridViewの各グループ内の列ヘッダーを繰り返す方法はありますか?

ATを使用しています http://msdn.microsoft.com/en-us/library/ms754027.aspx エキスパンダーコントロールを使用して各グループを表示します。

リストビューの上部ではなく、各グループのエキスパンダー内に列ヘッダーを表示したいと思います。

役に立ちましたか?

解決

私はこれを試していませんが、あなたのグループヘッダーにgridviewheaderrowpresentersを含めることができるかもしれません:

<GridViewHeaderRowPresenter
  DataContext="{Binding View, RelativeSource={RelativeSource FindAncestor,ListView,1}}"
  Columns="{Binding Columns}"
  ColumnHeaderContainerStyle="{Binding ColumnHeaderContainerStyle}"
  ColumnHeaderTemplate="{Binding ColumnHeaderTemplate}"
  ColumnHeaderTemplateSelector="{Binding ColumnHeaderTemplateSelector}"
  AllowsColumnReorder="{Binding AllowsColumnReorder}"
  ColumnHeaderContextMenu="{Binding ColumnHeaderContextMenu}"
  ColumnHeaderToolTip="{Binding ColumnHeaderToolTip}"
  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>

それがうまくいかない場合、それを行うための確実な方法の1つは、GridViewの上部にある1つのGridViewHeadErrowPresenterを参照するVisualBrushで塗装された長方形を追加することです。

これは、長方形に使用する添付のプロパティで実行できます。添付のプロパティが設定されると、それは次のような低優先度のディスパッチャーコールバックを登録します。

  1. 視覚ツリーをリストビューにスキャンします
  2. gridviewheaderrowpresenterが見つかるまで検索します
  3. VisualBrushを作成し、長方形の塗りつぶしとして設定し、

長方形自体は次のようなものになります:

<Rectangle HorizontalAlignment="Stretch"
           Height="{Binding Fill.Visual.RenderHeight}"
           my:GridViewHeaderHelper.SearchForHeaderRowPresenterAndSetFill="True" />
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top