首页 > 解决方案 > WPF DataGridTextColumn 绑定关系表数据(WPF/EF/PRISM)

问题描述

我有一个代码,但绑定关联表数据不起作用。

有两个表,一个产品表和一个供应商表。

产品 XAML

<DataGrid ItemsSource="{Binding ListCollection}" ...>
<DataGrid.Columns>
                <DataGridTextColumn Header="ID" Binding="{Binding ProductId}"></DataGridTextColumn>
                <DataGridTextColumn Header="ProductName" Binding="{Binding ProductName}"></DataGridTextColumn>
                <DataGridTextColumn Header="Supplier" Binding="{Binding Supplier.SupplierName}"></DataGridTextColumn>
            </DataGrid.Columns>
</DataGrid>

产品视图模型

class Products{
    public ProductsViewModel()
    {
        using (EFDBEntities efdb = new EFDBEntities())
        {
            ListCollection = new ObservableCollection<Products>(efdb.Products); 
        }
    }

    private ObservableCollection<Products> _listCollection = new ObservableCollection<Products>();
    public ObservableCollection<Products> ListCollection
    {
            get => _listCollection;
            set => SetProperty(ref _listCollection, value);
    }
}

实体框架(产品)

public partial class Products
    {
        public int ProductId { get; set; }
        public string ProductName { get; set; }
        public virtual Supplier Supplier { get; set; }
    }

但供应商没有数据

表格图像

标签: wpfentity-frameworkdatagridtextcolumn

解决方案


不要使用

        using (EFDBEntities efdb = new EFDBEntities())
        {
            ListCollection = new ObservableCollection<Products>(efdb.Products); 
        }

改成

        private EFDBEntities efdb;
        public ProductsViewModel()
        {
            efdb = new EFDBEntities();
            ListCollection = new ObservableCollection<Products>(efdb.Products);
        }

解决问题


推荐阅读