私は .NET と C# の初心者なので、簡単に解決できる問題 (?) に行き詰まっています。
Xml-File を DataSource として使用しています。そのデータを DataGridView に表示することができました。ダブルクリックすると、編集マスクとして機能する新しいフォームが開きます。しかし、編集フォームで [OK] ボタンを押したときに、DataSet エントリを編集フォームに渡し、それを DataGridViews の基になる DataSource に同期させるにはどうすればよいでしょうか。
これは私がこれまでに持っているものです:
メインフォーム:
public partial class Main : Form
{
private DataSet dataSet;
private EditForm editForm;
public Main()
{
InitializeComponent();
}
private void readXmlFile(object sender, EventArgs e)
{
// bind DataGridView to Xml file data
this.dataSet = new DataSet();
this.dataSet.ReadXml("data.xml");
DataTableCollection tables = this.dataSet.Tables;
DataView view1 = new DataView(tables[0]);
BindingSource source1 = new BindingSource();
source1.DataSource = view1;
source1.Filter = "type = 'editable'";
gridView.DataSource = source1;
}
private void gridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DataGridView grid = (DataGridView)sender;
DataRow row = ((DataRowView)grid.Rows[e.RowIndex].DataBoundItem).Row;
this.editForm = new EditForm(row);
editForm.ShowDialog();
}
}
これは私の編集フォームです:
public partial class EditForm : Form
{
DataRow dataRow;
public EditForm(DataRow dataRow)
{
InitializeComponent();
this.dataRow = dataRow;
textBoxHeadline.DataBindings.Add("Text", this.dataRow, "headline");
}
private void buttonOk_Click(object sender, EventArgs e)
{
// update DataGridView and DataSet?
}
}