2016-12-18 51 views
0

我常想,WPF支持与嵌套属性,但不知何故,显示空 这是我的XAML:WPF Datagrid的嵌套属性,显示为空

<DataGrid x:Name="storageGrid" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" AutoGenerateColumns="False" Height="351" Width="643"> 
         <DataGrid.Columns> 
         <DataGridTextColumn Header="Name" Binding="{Binding Product.Name}" Width="100" /> 
         <DataGridTextColumn Header="Quantity" Binding="{Binding Quantity}" Width="100" /> 
         </DataGrid.Columns> 
        </DataGrid> 

当加载的形式,我称之为InitializeData方法,看起来像这样:

public void InitializeData() 
    { 
     storageGrid.Items.Clear(); 

     var dbStorages = Repository.Storages(); 
     foreach (var storage in dbStorages) 
     { 
      Storages.Add(storage); 
     } 
     storageGrid.ItemsSource = Storages; 
     storageGrid.Items.Refresh(); 

    } 

存储是本地列表属性。我使用实体框架DATABSE一类,这里的存储定义:

public partial class Storage 
{ 
    public Nullable<int> ProductId { get; set; } 
    public Nullable<int> Quantity { get; set; } 
    public Nullable<int> RoomId { get; set; } 
    public int EntryId { get; set; } 

    public virtual Product Product { get; set; } 
    public virtual Room Room { get; set; } 
} 
} 

当我启动的应用程序,这是我看到的景象: WPF DataGrid shows the property correctly, but the nested property is empty

如何让我的DataGrid显示嵌套产品名称?

+0

什么类型是Storages的? – Fruchtzwerg

+0

@Fruchtzwerg名单

回答

0

问题是懒加载,所以我需要一个包含语句添加到我的Repository.Storages()方法是这样的:

return ctx.Storages.Include(s => s.Product).ToList(); 

我还需要添加

using System.Data.Entity; 

使我得到一个包含lambda的扩展方法