GroupStyles如何工作?
|
我有一个ListView控件绑定到ViewModel中的“ 0”。
我想尝试对这些项目进行分组,但是有一些问题。
我首先在VM中设置了属性分组,然后添加了一个“ 1”。
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>
但是,列表现在只是类别名称,无法查看项目本身。
我不是真的完全了解这里发生了什么。当我为ѭ1创建模板时,我真正绑定到的是什么?除了Name
还有其他属性吗?
我只是将“ 1”添加到已经创建的ListView中,例如,其中包括“ 7”。那是与ѭ1混淆的东西吗?
如果列表中的项目属于另一个类,而我不想根据它们所属的类的实例(具有ID)进行分组怎么办?然后,我会将组名作为此父类的属性。那可能吗?
部分解决方案:
问题在于应用于ListView的样式。我不知道这种风格是什么。
完整解决方案
我没有在列表框“ 10”中使用“ 9”,而是选择了将“ 11”设置为“ 12”的面板。看来必须使用ItemsPresenter才能使GroupStyling正常工作。
没有找到相关结果
已邀请:
1 个回复
疮痪徘弦漏
在视图中,将CollectionViewSource绑定到此集合:
接下来,我们将列表控件绑定到此CollectionViewSource(在此示例中使用组合键):
令人困惑的地方是,在GroupStyle中,您没有绑定到Model,而是绑定到了一组Models(在此例中,属性\ GroupName \)分组。 CollectionViewSource将您的模型分组为扩展CollectionViewGroup的集合。这些组具有一个名为
的属性,该属性包含对模型进行分组的公用值(
属性的值)。因此,在HeaderTemplate中,您将绑定到CollectionViewGroup.Name。