ListCollectionView
ViewModel にバインドされた ListView コントロールがあります。
これらのアイテムをグループ化したかったのですが、いくつか問題がありました。
最初に VM でプロパティのグループ化を設定し、GroupStyle
.
C#:
ListCollectionView.GroupDescriptions.Add(new PropertyGroupDescription("Category"));
XAML:
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Name}"/>
</DataTemplate>
</GroupStyle.HeaderTemplate>
</GroupStyle>
</ListView.GroupStyle>
ただし、リストはカテゴリ名だけになり、アイテム自体を表示する方法はありません。
私はここで何が起こっているのかを完全には理解していません。のテンプレートを作成するとき、GroupStyle
実際にバインドしているのは何ですか? 以外のプロパティはありName
ますか?
GroupStyle
たとえば、を含めた場所に、既に作成した ListView に を追加しましたItemTemplate
。それは何かをいじっていGroupStyle
ますか?
リスト内のアイテムが別のクラスに属していて、それらが属しているクラスのインスタンスに基づいてグループ化したくない場合はどうなりますか (ID があります)。次に、この親クラスのプロパティとしてグループ名を取得します。それは可能ですか?
部分的な解決策:
ListView に適用されたスタイルに問題がありました。スタイルが何を妨害していたのか、私にはわかりません。
完全なソリューション
に設定されたパネルを使用することを選択したItemsPresenter
リストボックスでを使用していませんでした。GroupStyling が正しく機能するには、ItemsPresenter を使用する必要があるようです。ControlTemplate
IsItemsHost
true