0

Person オブジェクトのコレクションを DataGrid に表示して、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

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>

2 番目のオプションは、行の詳細を使用することです。

3 番目のオプションは、選択した行の詳細を表示するためのコントロールを使用することです。

<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 に答える