У меня есть требование, в котором я показываю информацию Master-Detail в DataGridView.
Я добавил отношение внешних ключей к набору данных. Но Detail Grid не мигает сам по себе в зависимости от выбора мастера. Я не знаю, что мне здесь не хватает!
Просто чтобы проверить, существуют ли отношения, я проверил их с помощью DataGrid. Я там наверху.
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
DataSet CreateTableAndFill()
{
DataSet ds = new DataSet();
DataTable Header = ds.Tables.Add("Header");
DataTable Line = ds.Tables.Add("Line");
DataColumn dataColumn = Header.Columns.Add("ID", typeof(int));
dataColumn.AutoIncrement = true;
dataColumn.AutoIncrementSeed = 1;
Header.Columns.Add("Name", typeof(string));
Line.Columns.Add("ID", typeof(int));
Line.Columns.Add("Phone", typeof(string));
DataRelation dataRelation = new DataRelation("ID_FK", Header.Columns["ID"], Line.Columns["ID"]);
ds.Relations.Add(dataRelation);
Header.Rows.Add(null, "Huzaiafa");
Header.Rows.Add(null, "Arthur");
Line.Rows.Add(1, "4253068516");
Line.Rows.Add(1, "4252746864");
Line.Rows.Add(2, "5654034");
Line.Rows.Add(2, "12563");
return ds;
}
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = CreateTableAndFill();
dataGridView1.DataSource = ds;
dataGridView2.DataSource = ds;
dataGridView1.DataMember = "Header";
dataGridView2.DataMember = "Line";
}
}
}
Даже после применения перехода от msdn это не работает! Тот же результат.
private void button1_Click(object sender, EventArgs e)
{
DataSet ds = CreateTableAndFill();
BindingSource masterBindingSource = new BindingSource();
BindingSource detailsBindingSource = new BindingSource();
masterBindingSource.DataSource = ds;
detailsBindingSource.DataSource = masterBindingSource.DataSource;
masterBindingSource.DataMember = "Header";
detailsBindingSource.DataMember = "Line";
dataGridView1.DataSource = masterBindingSource;
dataGridView2.DataSource = detailsBindingSource;
}