WPF主细节datagridview with join in details

时间:2016-06-09 06:22:01

标签: c# wpf entity-framework master-detail

我在Sql Server中有两个表,具有主要的详细信息关系。从VS 2015开始,在窗口(WPF)中,使用数据源,我将主表添加到了我的窗口。以前我创建了一个EF数据模型。一切顺利。我想要的是,我无法将其他两列添加到详细信息网格中。可以获得这两个列,将详细信息表与另一个表相关联。 XAML是由VS自动创建的,我刚刚在代码中编写了负载数据代码。

<Window.Resources>
<CollectionViewSource x:Key="AnaSchemiPallettizzazioneMasterView" />
<CollectionViewSource x:Key="AnaSchemiPallettizzazioneDetView" Source="{Binding Source={StaticResource AnaSchemiPallettizzazioneMasterView}, Path='AnaSchemiPallettizzazioneDet'}" />

<DataGrid x:Name="dgAnaSchemiPallettizzazioneMaster" AutoGenerateColumns="False" EnableRowVirtualization="True" ItemsSource="{Binding}" RowDetailsVisibilityMode="VisibleWhenSelected" >

详细

 <DataGrid x:Name="dgAnaSchemiPallettizzazioneDet" AutoGenerateColumns="False" EnableRowVirtualization="True" IsSynchronizedWithCurrentItem="True"
              ItemsSource="{Binding Source={StaticResource AnaSchemiPallettizzazioneDetView}}" Grid.Row="1" RowDetailsVisibilityMode="VisibleWhenSelected">

正在加载数据

 cvUnita3Fab = new dbUnita3FabEntities();

            cvSchemiMasterViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("AnaSchemiPallettizzazioneMasterView")));

            //Caricamento dei dati.
            cvUnita3Fab.AnaSchemiPallettizzazioneMaster.Load();
            cvSchemiMasterViewSource.Source = cvUnita3Fab.AnaSchemiPallettizzazioneMaster.Local;

Image of the tables

Relations

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。主体实体与EF模型(edmx)中的类一致。相关表定义为** public virtual **

public partial class AnaSchemiPallettizzazioneDet
{

...
        公共虚拟AnaMateriali AnaMateriali {get;组; }         公共虚拟......     }

在xaml窗口定义中,我添加了以下行:

<DataGridTextColumn x:Name="LunghezzaColumn" Binding="{Binding AnaMateriali.Lunghezza}" Header="Lunghezza" />
            <DataGridTextColumn x:Name="AltezzaColumn" Binding="{Binding AnaMateriali.Altezza}" Header="Altezza" />