c# - WPF Listview 按子类分组
问题描述
我有一个包含子类的类
public class CustomerDate
{
public string Date { set; get; }
public Customerdetails _Customerdetails { set; get; }
public CustomerDate()
{
_Customerdetails = new Customerdetails();
}
}
public class Customerdetails
{
public int Id { set; get; }
public string Name { set; get; }
public Customerdetails() { }
}
我有一个 CustomerDate 对象列表,我想绑定到按 subClass(Customerdetails) 分组的列表视图。我的问题是我可以在列表视图的 Gridview ({Binding Customerdetails.Name}) 中显示子类属性,但不能在 GroupStyle 部分显示子类详细信息。
<TextBlock Text="{Binding Path=Customerdetails.Name}" />
不工作但是
<GridViewColumn DisplayMemberBinding="{Binding Customerdetails.Name}"
正在工作中。
任何想法?
List<CustomerDate> CustomerDateList = new List<CustomerDate>();
.
.
.
lv.ItemsSource = DBAccess.GetBadMonthlyPaymentCustomers();
CollectionView view =
(CollectionView)CollectionViewSource.GetDefaultView(lv.ItemsSource);
PropertyGroupDescription gd = new PropertyGroupDescription("Customerdetails");
view.GroupDescriptions.Add(gd);
<ListView x:Name="lv">
<ListView.View>
<GridView x:Name="GridView" >
<GridViewColumn DisplayMemberBinding="{Binding Date}" />
<GridViewColumn DisplayMemberBinding="{Binding Customerdetails.Name}" />
</GridView>
</ListView.View>
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="auto"/>
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<StackPanel Margin="0,10,0,0" Orientation="Horizontal">
<TextBlock Text="{Binding Path=Customerdetails.Name}" />
</StackPanel>
<ItemsPresenter Grid.Row="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
</ListView>
解决方案
a的DataContext
aGroupItem
是 aCollectionViewGroup
而不是Customerdetails
。
一个组可能包含几个Customerdetails
. 您可以使用 的属性绑定到其中Name
任何一个的Items
属性CollectionViewGroup
,例如:
<TextBlock Text="{Binding Items[0].Name}" />
推荐阅读
- gatsby - 如何在增量构建中使用 Gatsby 插件映像
- laravel - 日志中的 Laravel 错误没有告诉我需要修复什么
- python - thread.is_alive() 或 thread.isAlive() 不工作
- php - Ajax 未发送密码类型的输入
- postgresql - 如何从查询中删除重复值
- sql-server-2019 - 当我尝试部署我的 dacpac 文件时,这个错误是什么?
- apache-flink - Flink Run API 不返回
- python - 遍历字典并打印键,在最后一次迭代时输出“无”值,这是为什么呢?
- node.js - 使用 group() 将数组包含到 mongoDB 查询中
- node.js - 如何在 Nodejs 中连接 AWS Managed Microsoft AD?