首页 文章

C#将TextBox绑定到DataTable的特定行

提问于
浏览
1

我正在构建一个简单的C#应用程序,允许用户编辑数据库中表的行 . 界面非常简单,它基本上是一个行列表和几个按钮 . 选择一行并按“添加”按钮会弹出一个新表单,其中包含每列的文本框 . 我希望使用所选行的值填充这些列 .

在阅读了几篇文章后,我发现可能简单的方法是将TextBox的Text属性绑定到DataSource . 因此,我将数据库中的值存储在DataTable对象中,并计划检索所选的DataRow并将其绑定到TextBox . 这是我使用的线:

productNameTextBox.DataBindings.Add(new Binding("Text", productRow, "Name"));

结果是以下异常:

System.Windows.Forms.dll中出现'System.ArgumentException'类型的第一次机会异常无法绑定到DataSource上的属性或列名称 . 参数名称:dataMember

是的,“名称”列确实存在 .

根据绑定文档(http://msdn.microsoft.com/en-us/library/4wkkxwcz(v=VS.80).aspx)和许多示例阅读后,在我看来,必须绑定到包含该行的DataTable . 以下代码对我有用:

productNameTextBox.DataBindings.Add(new Binding("Text", productRow.Table, "Name"));

除了它总是将TextBox的值设置为第一行 . 如何指定要使用的行?

1 回答

  • 1

    而不是行,使用从DataView获取的DataRowView . Iirc通过ICustomTypeDescriptor配置灵活(自定义)绑定 .

相关问题