C# 如何显示列表<&燃气轮机;数据网格单元格中的项目?

C# 如何显示列表<&燃气轮机;数据网格单元格中的项目?,c#,wpf,entity-framework,datagrid,C#,Wpf,Entity Framework,Datagrid,我有一个带有自动生成列的DataGrid。ItemsSource是对EF上下文进行LINQ到实体查询的结果。其中一列包含实体列表。如何使其显示实体实例的名称 加载数据网格的函数: private void DataGridRecipientsLoad() { List<Recipient> recipients = _recipientService.GetAllRecipients(); dataGridRecipients.Item

我有一个带有自动生成列的
DataGrid
ItemsSource
是对EF上下文进行LINQ到实体查询的结果。其中一列包含实体列表。如何使其显示实体实例的名称

加载
数据网格的函数:

    private void DataGridRecipientsLoad()
    {
        List<Recipient> recipients = _recipientService.GetAllRecipients();
        dataGridRecipients.ItemsSource = from rec in recipients select rec;
        if (recipients.Count() == 0) return;
        dataGridRecipients.Columns[7].Visibility = System.Windows.Visibility.Collapsed;
        dataGridRecipients.Columns[8].Visibility = System.Windows.Visibility.Collapsed;
    }

我想显示每个
收件人所属的所有
邮件列表。

创建一个包含收件人对象的视图模型

为实现INotifyPropertyChanged的收件人对象创建属性

为邮件列表添加另一个属性。同时更改邮件列表的收件人属性notify属性

public Recipient Recipient
{
    get { return _Recipient; }
    set
    {
        _Recipient = value;
        NotifyPropertyChanged("Recipient");
        NotifyPropertyChanged("MailingList");
    }
} private Recipient _Recipient

public EntityCollection<MailingList> MailingList
{
    get { return _MailingList; }
    set
    {
        _MailingList= value;
        NotifyPropertyChanged("MailingList");
    }
} private EntityCollection<MailingList> _MailingList
公共收件人
{
获取{return\u Recipient;}
设置
{
_接收者=价值;
通知财产变更(“接收方”);
NotifyPropertyChanged(“邮件列表”);
}
}私人收件人
公共实体收集邮件列表
{
获取{return\u MailingList;}
设置
{
_MailingList=值;
NotifyPropertyChanged(“邮件列表”);
}
}private EntityCollection\u邮件列表
那么在你看来,我假设你有办法选择这个人或收件人,当你选择他们时,收件人会改变。然后应该存在另一个视图来显示邮件列表。然后将DataGrid的ItemsSource绑定到MailingList属性

我假设EntityCollection是IList或IEnumerable,否则,您可能必须将其转换为类似列表或ObservableCollection的内容。如果需要,请创建一个MailingListViewModel,并在必要时创建列表或ObservableCollection

此外,我假设MailingList具有自动生成列可以使用的名称属性,否则您需要生成列而不是自动生成列

public Recipient Recipient
{
    get { return _Recipient; }
    set
    {
        _Recipient = value;
        NotifyPropertyChanged("Recipient");
        NotifyPropertyChanged("MailingList");
    }
} private Recipient _Recipient

public EntityCollection<MailingList> MailingList
{
    get { return _MailingList; }
    set
    {
        _MailingList= value;
        NotifyPropertyChanged("MailingList");
    }
} private EntityCollection<MailingList> _MailingList