5月 142015
 
Pocket

結論

グループ化したい時はControlTemplateItemsPresenterを使わないとダメっぽい

やりたかったこととか

また、ItemsPanel を指定せず、前述の ControlTemplate でコレクション項目の並べ方を指定する方法もあります。ControlTemplate 内に ItemsPresenter を配置する代わりに、Panel の派生クラスを指定し、IsItemsHost プロパティに True を設定します。

のだけども、グループ化して表示したい場合うまく表示されない。

  • こうしたかった
  • が、こうなる

※実際やりたかったこととは違うけど例なので……

ダメだったソース

[xml]


































[/xml]

原因っぽい

で調べてみると、どうやらItemsControlでのグループ用のItemsPanelを作る機能はItemsPresenterがやっており、ControlTemplateItemsPresenterを使わないとグループがちゃんと表示されないっぽい?

更にIsItemsHostプロパティのMSDN見るとこんなことが。

このような方法で指定した場合、コントロールのユーザーは、ControlTemplate を使用せずに ItemsPanel を置き換えることはできません。 したがって、この方法で指定するのは、テンプレートを使用せずにパネルを置き換える必要がない場合のみにしてください。

なのでGroupStyleItemsPanelを置き換えるのも効かなくなるって事っぽい。

修正したソース

[xml]







































[/xml]

 Leave a Reply