这是我在StackOverflow上的第一个问题所以我希望我没有做错任何事! 对不起,如果是这样的话!我需要一些帮助,因为我找不到问题的解决方案。当然我已经在网上搜索过但我找不到它(不能发布我正在使用的链接,因为我的声誉很低:()。而且,我是C#和WPF(以及自学)的新手。我以前在C ++ / Qt工作,所以我不知道WPF中的一切是如何工作的。对不起我的英语,我是法国人。
我的基本课程是员工可以使用计算机。计算机的ID和使用日期存储在类Connection
中。我想在DataGrid和RowDetailsTemplate中显示列表信息,如下所示:
因此它将绑定到Employee
类,但也只绑定到Connection
类,只包含属性的最后一个值(这里是列表“计算机ID”的最后一个值,最后一个是最后一台计算机上的“连接日期”列表的值)。所以它是不同列表中的循环。我该怎么办?
要做的太多了吗? :( 我成功获得了员工信息,但我不知道如何绑定计算机列表。当我尝试时,它会显示“(收藏)”,因此它不会进入列表:(
DataGrid
中其他类的值?RowDetailsTemplate
?在Windows 7和Visual Studio 2010 Pro版本下。
答案 0 :(得分:1)
我建议你熟悉MVVM模式,以防你还没有...这是非常基本的,所以你想修改/设计它以获得你想要的^ _ ^ ... < / p>
<DataGrid ItemsSource="{Binding Employees}">
<DataGrid.Columns>
<DataGridTextColumn Header="First Name" Binding="{Binding FirstName}"/>
<DataGridTextColumn Header="Last Name" Binding="{Binding LastName}"/>
<DataGridTextColumn Header="Gender" Binding="{Binding Gender}"/>
<DataGridTextColumn Header="Last computer used" Binding="{Binding LastComputerUsed}"/>
<DataGridTextColumn Header="Last connection date" Binding="{Binding LastConnectionDate}"/>
</DataGrid.Columns>
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding ComputerIDs}">
<DataGrid.Columns>
<DataGridTextColumn Header="Computer ID" Binding="{Binding ID}"/>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding ConnectionDates}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
</DataGrid>
答案 1 :(得分:0)
让我们试试,
您可以创建一个名为EmployeeConnection的类,其中包含
公共员工员工{get;私人集; } 公共列表连接{get;私人集; }
因此,gridview中的每一行都有1个Employee和具有Connection的列。
您必须将EmployeeConnection作为gridview数据源。
可能是?