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]