这会导致集合中的两个绑定绑定到同一个属性。参数名称:c#中的绑定错误?
Posted
技术标签:
【中文标题】这会导致集合中的两个绑定绑定到同一个属性。参数名称:c#中的绑定错误?【英文标题】:This causes two bindings in the collection to bind to the same property. Parameter name: binding error in c#? 【发布时间】:2014-06-07 19:33:50 【问题描述】:我尝试在运行时将数据源绑定到DevExpress.XtraEditors.LookupEdit
。我尝试了此代码,但收到以下错误:
这会导致集合中的两个绑定绑定到同一个属性。参数名称:绑定。
这是我的代码:
// Create an adapter to load data from the "Customers" table.
OleDbDataAdapter testcustomers = new OleDbDataAdapter(
"SELECT CustomerId, Customername FROM Customer WHERE CompanyId =" + TXE_CompId.Text, connection);
DataSet ds = new DataSet(); // Create a dataset that will provide data from the database.
testcustomers.Fill(ds, "Customer"); // Load data from the "Customers" table to the dataset.
// A BindingSource for the "Customers" table.
BindingSource binding_cust = new BindingSource(ds, "Customer");
CBL_SelectCustomer.DataBindings.Add("EditValue", binding_cust, "CustomerId"); // getting error on this line
// Specify the data source to display in the dropdown.
CBL_SelectCustomer.Properties.DataSource = binding_cust;
// The field providing the editor's display text.
CBL_SelectCustomer.Properties.DisplayMember = "CustomerName";
// The field matching the edit value.
CBL_SelectCustomer.Properties.ValueMember = "CustomerId";
// Add two columns to the dropdown.
LookUpColumnInfoCollection coll = CBL_SelectCustomer.Properties.Columns;
// A column to display the ProductID field's values.
coll.Add(new LookUpColumnInfo("CustomerName", 0));
如何解决这个错误?
【问题讨论】:
您在哪一行得到异常? 我在代码中提到的第 6 行CBL_SelectCustomer.DataBindings.Add("EditValue", binding_cust, "CustomerId");
【参考方案1】:
在绑定之前试试这个:
CBL_SelectCustomer.DataBindings.Clear();
【讨论】:
【参考方案2】:每个控件一次只能有一个绑定。看起来像你 在您尝试之前和现在时已经绑定到文本框 重新绑定它,它会引发错误。您需要清除旧绑定 在添加新的之前。
先清除绑定,再添加到控件中:
CBL_SelectCustomer.DataBindings.Clear();
CBL_SelectCustomer.DataBindings.Add("EditValue", binding_cust, "CustomerId");
【讨论】:
【参考方案3】:我知道这是一篇旧帖子,但就我而言,我一直收到该错误,因为我一直在 de forms 构造函数中调用 form_load
事件(在 InitializeComponent();
下,复制粘贴时出错)。每次都会加载表单两次,直到您遇到像这样的时髦行为时才会注意到。
如果是这种情况,删除 this.Load += new System.EventHandler(Form1_Load)
(或类似电话)会有所帮助。
【讨论】:
以上是关于这会导致集合中的两个绑定绑定到同一个属性。参数名称:c#中的绑定错误?的主要内容,如果未能解决你的问题,请参考以下文章
WPF .Net 4 - OneWayToSource 绑定到只写属性适用于某些机器!如何?
WPF .Net 4 - OneWayToSource 绑定到只写属性适用于某些机器!如何?
ComboBox在WPF中的绑定示例:绑定项集合转换,及其源代码
以编程方式更改 GridView ItemTemplate 中的数据绑定属性