我在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;
答案 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" />