我有两个类:Factor
和 FactorItems
。我还有三个窗口:Win1
、Win2
、WinRead
。 Win1
包含一个名为 grd1
的数据网格; Win2
包含一个名为 grdItems
的数据网格,WinRead
包含一个名为 grdRead
的数据网格。
FactorItems
上有来自 Factor
的外键。我使用了SaveChanges()
方法并将数据从Win2
grdItems
插入到两个表中。此外,我可以读取和显示Factor's
grd1
表记录,并且所有内容都是正确的。
现在我希望当我在grd1
行上单击(我使用 DataGridCellChanges
(时(例如,使用 Id == 50
(,它应该加载WinRead
并显示所有FactorItems
及其外键WinRead_Load
grdRead 上Factor_Id 50
。
因素
public class Factor
{
public Factor()
{
this.BuyList = new List<FactorItems>();
}
public Int64 Id { get; set; }
public virtual ICollection<FactorItems> BuyList { get; set; }
}
因子项
public class FactorItems
{
public Int64 Id { get; set; }
public string ProductName `enter code here`{ get; set; }
public int NumberInBox { get; set; }
public decimal TotalNumber { get; set; }
public virtual Factor Factors{ get; set; }
}
赢1
private void grd1_SelectedCellsChanged(objectsender,SelectedCellsChangedEventArgs e)
{
WinRead wread = new WinRead
if (grd1.SelectedItems.Count > 0)
{
wread.ShowDialog();
}
}
温读
private void grdRead_Loaded(object sender, RoutedEventArgs e)
{
using (var ctx = new EntContext())
{
//What do I write here?
}
}
Factor row = dataGridPrincipal.SelectedItem as Factor;
现在您将拥有所选对象
WinRead wread = new WinRead
if (grd1.SelectedItems.Count > 0)
{
wread.grid.itemsource= ctx.Factor.BuyList.where(x=>x.Id==row.forignkey).Tolist()
wread.ShowDialog();
}
或
在WinRead
中创建 prop 并将外键保存在那里,在加载事件中,您可以加载