該圖示在 DataPropertyName 上設定 Customer.CustName
但執行時,客戶名稱顯示空白,沒有資料出現
在 CellFormatting Event 內進行變化
Order Class
namespace DataGridView4CellFormatting
{
using System;
using System.Collections.Generic;
public partial class Order
{
public int OrderID { get; set; }
public System.DateTime OrderDate { get; set; }
public int CustID { get; set; }
public virtual Customer Customer { get; set; }
}
}
Customer Classnamespace DataGridView4CellFormatting
{
using System;
using System.Collections.Generic;
public partial class Customer
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public Customer()
{
this.Order = new HashSet<Order>();
}
public int CustID { get; set; }
public string CustName { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<Order> Order { get; set; }
}
}
C# Codeusing System.Data.Entity;
namespace DataGridView4CellFormatting
{
public partial class Form1 : Form
{
EFDbContext context;
BindingSource bsOrder;
public Form1()
{
InitializeComponent();
context = new EFDbContext();
bsOrder = new BindingSource();
}
private void Form1_Load(object sender, EventArgs e)
{
context.Order.Include(c => c.Customer).Load();
bsOrder.DataSource = context.Order.Local.ToBindingList();
dgvOrders.AutoGenerateColumns = false;
dgvOrders.DataSource = bsOrder;
}
private void dgvOrders_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
var row = dgvOrders.Rows[e.RowIndex];
if (e.RowIndex >= 0 &&
e.ColumnIndex == 3 &&
row != null)
{
var order = (Order)row.DataBoundItem;
if (order != null && order.Customer != null)
{
e.Value = order.Customer.CustName;
}
}
}
}
}
執行結果
沒有留言:
張貼留言