我有一个要可视化和使用的数据集。我使用 DataGridView 组件来显示它的表格,但是在添加新行/编辑现有行时,我不想使用 DataGridView 的功能:我想显示一个自定义表单,使用 TextBoxes 和 ComboBoxes 等等,和确定/取消按钮。
有一个包含 Name (string)、Forme (string)、Image (byte[])、Attr1 (string)、Attr2 (string)、IsSpecial (bool) 列的表。Forme 和 Attr2 可以为空,其他都不是,并且 Image 应该包含一张图片。此外,必须从另一个表(具有 ID(长)、名称(字符串)列)中查找 Attr1 和 Attr2。
所以我创建了一个新表单,在其上放置了两个文本框、一个图片框、两个组合框和一个复选框。我已经有一个问题:如何在文本框/组合框中表示 DBNull?
接下来,绑定本身。我想我必须做这样的事情:
class MainForm
{
// ...
private void btAdd_Click(object sender, EventArgs e)
{
using (EditFrom editForm = new EditForm())
{
// I have to create a new row, right?
var newRow = theTable.newStrongTypedRow();
if (editForm.ShowData(binding) == DialogResult.OK)
theTable.addStrongTypedRow(newRow);
}
}
private void btEdit_Click(object sender, EventArgs e)
{
using (EditFrom editForm = new EditForm())
{
if (editForm.ShowData(binding) == DialogResult.OK)
binding.EndEdit();
else
binding.CancelEdit();
}
}
}
class EditForm
{
// ...
public DialogResult ShowData(SomeBinding binding)
{
// tie the controls to the datarow which is being edited right now
BindAllControls(binding);
// let the user input the data
return ShowDialog();
}
}
但是我对“SomeBinding”有什么用呢?BindAllControls() 里面有什么?或者也许我把这一切都颠倒了,这不是我应该如何表示/编辑数据?也许有人可以推荐一本关于这个主题的书?