C# 在显示到文本框之前更改数据绑定内的数据值

C# 在显示到文本框之前更改数据绑定内的数据值,c#,winforms,data-binding,C#,Winforms,Data Binding,我有和这个一样的数据绑定设置 但我不知道如何更改的值,假设我有两种型号: class Receipt { public int ProductId { get; set; } public double Price { get; set; } //etc... } class Product { public int ProductId { get; set; } public string ProductName { get; set; } //etc.

我有和这个一样的数据绑定设置

但我不知道如何更改的值,假设我有两种型号:

class Receipt {
   public int ProductId { get; set; }
   public double Price { get; set; }
   //etc...
}

class Product {
   public int ProductId { get; set; }
   public string ProductName { get; set; }
   //etc...
}
My datagrid显示收据模型,选中其中一个后,My TextBox将显示datagrid中未显示的其他详细信息

现在我的问题是我需要在文本框中显示ProductName而不是ProductId

我首先使用实体框架代码。 请帮忙


TIA.

由于您使用的是实体框架,并且在
收据
类中有
产品
属性,因此可以使用
收据
加载
产品
,例如:

this.receiptBindingSource.DataSource = db.Receipt.Include("Product").ToList();
您可以使用设计器或代码将
文本框的数据绑定设置为绑定到
Product.ProductName
属性:

this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", 
                               this.receiptBindingSource, "Product.ProductName", true));

您应该有某种方法使用所选的ProductId从收据获取产品实例。如果您使用的是SQL,您应该从中选择产品。您使用实体框架吗?@RezaAghaei-是的,当您加载收据时,我首先使用代码加载其产品。然后,您可以简单地使用其
Product.ToString()
或将
文本框
绑定到其
Product.ProductName
如果您对答案有任何疑问,请告诉我:)