日期:2014-05-17  浏览次数:20792 次

在WINFROM中,如何绑定多个值?
for (int i = 0; i < data.Rows.Count; i++)
  {
  listBox2.Items.Add(data.Rows[i][0].ToString());
  }
这种方法只能绑定一值,我要绑定多个值,但只显示一个值,如我绑定了客户名称,电话,联系人,但LISTBOTX里只显示客户名称。


用下同的这个虽然可以绑定两个值
this.listBox2.DataSource = data;
  this.listBox2.DisplayMember = "corp_name";
  this.listBox2.ValueMember = "corp_id";
但是我要实时更新,会提示绑定的数据不能再修改。

------解决方案--------------------
C# code

for (int i = 0; i < data.Rows.Count; i++)
  {
  listBox2.Items.Add(new ListItem(data.Rows[i]["客户名称"].ToString()+"#"+data.Rows[i]["电话"].ToString()+"#"+data.Rows[i]["联系人"].ToString(),data.Rows[i]["客户名称"].ToString());
  }

------解决方案--------------------
listbox 只能显示一项,明白?
真的不知所云啊?
你的数据来源于数据表吗?
实时更新,会提示绑定的数据不能再修改?
这个是什么原理?什么意思?
------解决方案--------------------
其实只要绑定了ID,其他的信息到时候根据ID去库里查一下就可以了,而不是你所设计的这种头疼模式.
------解决方案--------------------
WPF,ItemTemplete里面定义,想要多少要多少
------解决方案--------------------
MessageBox.Show(listBox2.SelectedItem.ToString());
------解决方案--------------------
用 Listview 或者datagridview 控件
------解决方案--------------------
用 Listview 或者datagridview 控件
------解决方案--------------------
this.listBox2.DataSource = data;
this.listBox2.DisplayMember = "corp_name";
this.listBox2.ValueMember = "corp_id";
这种绑定方式肯定是不允许修改的。
其实,告诉你一个很讨巧的方法。
你可以选择你绑定那个控件的其他一些相关属性,把不显示的值赋值给这些属性,显示出你要显示的值。
就可以很简单的达到你的效果。
如果你需要隐藏存储的属性过多,那我还是建议你定义一个实体对象。
主要属性用于显示,其他属性在需要用的时候,调用对象访问其他属性即可