0

如何在 DataGrid 中显示 Person 对象的集合,以便还可以查看有关 Person、Address、Dependents 和 Awards 的信息。

public class Person
{
        public int PersonId { get; set; }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public int Age { get; set; }
        public Address Address { get; set; }
        public IList<Dependent> Dependents { get; set; }
        public IList<Award> Awards { get; set; }
}

public class Address
{
        public string City { get; set; }
        public string State { get; set; }
        public string Country { get; set; }
}

public class Dependent
{
        public string DependentName { get; set; }
        public int DependentAge { get; set; }
}

public class Award
{
        public string AwardName { get; set; }
        public DateTime AwardDate { get; set; }
}
4

1 回答 1

1

一种选择是使用DataGridTemplateColumn

<DataGrid ItemsSource="{Binding MyItems}">
    <DataGrid.Columns>
        <DataGridTemplateColumn>
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <!-- template for Address, Dependent or Awards types -->
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

第二个选项是使用行详细信息

第三个选项是使用一些控件来显示选定的行详细信息:

<DataGrid x:Name="myGrid" ItemsSource="{Binding MyItems}">
    <!-- The rest of grid here -->
</DataGrid>

<ContentControl Content="{Binding SelectedItem, ElementName=myGrid}">
    <ContentControl.ContentTemplate>
        <DataTemplate>
            <!-- The template for person's details -->
        </DataTemplate>
    </ContentControl.ContentTemplate>
</ContentControl>
于 2013-07-08T11:13:49.587 回答