5月 142015
結論
グループ化したい時はControlTemplateにItemsPresenterを使わないとダメっぽい
やりたかったこととか
また、ItemsPanel を指定せず、前述の ControlTemplate でコレクション項目の並べ方を指定する方法もあります。ControlTemplate 内に ItemsPresenter を配置する代わりに、Panel の派生クラスを指定し、IsItemsHost プロパティに True を設定します。
のだけども、グループ化して表示したい場合うまく表示されない。
※実際やりたかったこととは違うけど例なので……
ダメだったソース
[xml]
[/xml]
[/xml]
原因っぽい
で調べてみると、どうやらItemsControlでのグループ用のItemsPanelを作る機能はItemsPresenterがやっており、ControlTemplateでItemsPresenterを使わないとグループがちゃんと表示されないっぽい?
更にIsItemsHostプロパティのMSDN見るとこんなことが。
このような方法で指定した場合、コントロールのユーザーは、ControlTemplate を使用せずに ItemsPanel を置き換えることはできません。 したがって、この方法で指定するのは、テンプレートを使用せずにパネルを置き換える必要がない場合のみにしてください。
なのでGroupStyleでItemsPanelを置き換えるのも効かなくなるって事っぽい。
修正したソース
[xml]
[/xml]
[/xml]


