ListCollectionViewViewModel にバインドされた 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 を使用する必要があるようです。ControlTemplateIsItemsHosttrue