如何在C#中的DataGrid中为单元格设置模板?

时间:2012-11-11 10:38:08

标签: c# wpf entity-framework datagrid

我有一个数据网格,ItemsSource绑定到LINQ to Entity查询的结果,并且在一列中是EntityCollection个对象。

   private void DataGridRecipientsLoad()
    {
        dataGridRecipients.ItemsSource = from rec in _recipientService.GetAllRecipients()
                                         select rec;
        dataGridRecipients.Columns[7].Visibility = System.Windows.Visibility.Collapsed;
        dataGridRecipients.Columns[8].Visibility = System.Windows.Visibility.Collapsed;            
    }

如何在C#中创建一个模板,该模板只从Entity Collection中的项目中取出字符串属性并显示它们?现在细胞是空的。

EntityCollection包含名为MailingList的实体,我想显示每个实体的myMailingList.Name

1 个答案:

答案 0 :(得分:0)

例如,您拥有一组客户,其中包含下一个属性:FirstNameLastName

internal class Customer
{
    public string FirstName {get; set;}
    public string LastName {get;set;}
}

然后你可以为它简单的网格视图:

<DataGrid x:Name="CustomersGridView" AutoGenerateColumns="False" >
        <DataGrid.Columns>
            <DataGridTextColumn Header="First Name" Binding="{Binding Path=FirstName}" />
            <DataGridTextColumn Header="Last Name" Binding="{Binding Path=LastName}" />
        </DataGrid.Columns>
    </DataGrid>

您还需要指定ItemSource(就像您在代码中所做的那样)。 您还可以使用DataGridTemplateColumn编写更灵活的模板以满足您的需求。 我建议你阅读更多关于xaml模板的内容。 (此link / another link有很好的样本)。 p.s.当我看到这些问题时,我总是建议阅读MVVM