C# DataGrid:有一个稳定的/固定的行,用于一个";“集团”;项目数量
我需要创建一个DataGrid,其中显示包括收入在内的客户列表。我有两个数据表(customer/income),我将它们合并到一个查询中,结果是customer/income项目的列表 我现在希望在一个表中显示所有客户,包括他们的收入,但不复制/显示每个收入行的每个客户。因此,我想隐藏客户的所有其他绘图,当它被绘制一次时 客户行应始终位于顶部。排序应该是可能的。换句话说,我正在寻找一种分组功能,而不需要分组 对于客户的列,不应出现如下情况: 另一个选项可以是分组,但我希望在分组元素中也有相同的类似“列”的显示,并具有调整大小的行为C# DataGrid:有一个稳定的/固定的行,用于一个";“集团”;项目数量,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我需要创建一个DataGrid,其中显示包括收入在内的客户列表。我有两个数据表(customer/income),我将它们合并到一个查询中,结果是customer/income项目的列表 我现在希望在一个表中显示所有客户,包括他们的收入,但不复制/显示每个收入行的每个客户。因此,我想隐藏客户的所有其他绘图,当它被绘制一次时 客户行应始终位于顶部。排序应该是可能的。换句话说,我正在寻找一种分组功能,而不需要分组 对于客户的列,不应出现如下情况: 另一个选项可以是分组,但我希望在分组元素中也有相
任何想法都是非常受欢迎的。为此,您可以使用
DatagridRowTemplate
在数据网格
中有两列,在数据网格行模板
中有一个列表框
显示单个客户的所有收入
您的XAML代码如下所示
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Customers}">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding CustomerName}" />
<DataGridTextColumn Header="Birthday" Binding="{Binding CustomerDOB}" />
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<ListBox ItemsSource="{Binding Incomes}" />
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
假设您有一个名为
客户的列表/observeCollection
。和CustomerName
,CustomerDOB
和incoments
(客户收入列表)是客户类的属性名称。您可以使用单独保存数据网格的模板替换收入列的单元格模板
XAML
请同时发布您的XAML代码。谢谢您的回复。我已经试过了,但我不希望收入在细节中,而是在主网格中。事实上,收入信息比这里显示的要大得多。为客户准备了大约20件物品。而且,在RowDetails中,我无法调整列的大小,而且我还需要RowDetails以获取其他信息。谢谢。我也尝试过这个,有一个网格中的网格解决方案。问题是DataGrid的行为非常怪异。关于这一点,有几个帖子。一个问题是鼠标weel不再正常工作,另一个问题是滚动条没有正确更新。
<DataGrid.Columns>
<DataGridTextColumn Header="Customer" Binding="{Binding Customer}" >
</DataGridTextColumn>
<DataGridTextColumn Header="Birth Date" Binding="{Binding Date}" >
</DataGridTextColumn>
<DataGridTemplateColumn Header="Income" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding IncomeList}"
AutoGenerateColumns="False"
HeadersVisibility="None"
CanUserAddRows="False"
CanUserDeleteRows="False">
<DataGrid.Columns>
<DataGridTextColumn
Width="*"
IsReadOnly="True"
Binding="{Binding Path=.}">
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>