使用另一个具有数据绑定的列表框在列表框中填充数据

时间:2014-04-06 05:46:32

标签: c# listbox databound

我有这两个列表框在第一个列表框中填充了组合框选择的索引已更改,因此列表框1是有界的。现在,当我按> 按钮时,列表框1中的所有选定项目都会显示在列表框2中。

但是我得到System.Data.DataRowView 而不是Names 所以我的问题是我想要Names而不是这个System.Data.DataRowView 我的代码就是这个

private void btnSelect1ItemFrom_Click(object sender, EventArgs e)
    {
        if (listBoxSelectToLedger.Items.Count > 0)
        {
            for (int i = 0; listBoxSelectToLedger.Items.Count > i; )
            {
                listBoxSelectToLedger.Items.Remove(listBoxSelectToLedger.Items[i].ToString());
            }              
        }
        if (listBoxSelectFromLedger.SelectedItem != null)
        {
          **  for (int i = 0; i < listBoxSelectFromLedger.SelectedItems.Count; i++)
            {
                listBoxSelectToLedger.Items.Add(listBoxSelectFromLedger.SelectedItems[i].ToString());
            }   **           
        }
        else
        {
            MessageBox.Show("No item Selected");
        }

*我认为我的代码中的第二IF条件错误* enter image description here

Plz帮助我 在此先感谢

3 个答案:

答案 0 :(得分:0)

试试这个......

  private void button1_Click(object sender, EventArgs e)
    {
        if(listBoxFrom.SelectedItems.Count>0)
        {
          for (int x = listBoxFrom.SelectedIndices.Count - 1; x >= 0; x--)
            {
                int idx = listBoxFrom.SelectedIndices[x];
                listBoxTo.Items.Add(listBoxFrom.Items[idx]);
                listBoxFrom.Items.RemoveAt(idx);
            } 

        }
    }

答案 1 :(得分:0)

Hiii ..深入,使用以下代码添加ListItem。

 foreach (ListItem LI in listBoxFrom.Items)
        {
            if (LI.Selected)
                listBoxTo.Items.Add(LI);
        }

要添加到第二个列表框并从第一个列表框中删除它,您可以使用以下代码:

        int[] indices = listBoxFrom.GetSelectedIndices();
        for (int i = indices.Length - 1; i >= 0; i--)
        {
            ListItem LI = listBoxFrom.Items[indices[i]];
            listBoxTo.Items.Add(LI);
            listBoxFrom.Items.RemoveAt(indices[i]);
        }

将您选择的无项目消息放在您需要的位置。

答案 2 :(得分:0)

我得到了回答我自己的问题。 我必须设置我的DataRowView对象

if (listBoxSelectToLedger.Items.Count > 0)
        {
            for (int i = 0; listBoxSelectToLedger.Items.Count > i; i = 0)
            {
                listBoxSelectToLedger.Items.Remove(listBoxSelectToLedger.Items[i].ToString());
            }
        }
        if (listBoxSelectFromLedger.SelectedItem != null)
        {

            foreach (DataRowView objDataRowView in listBoxSelectFromLedger.SelectedItems)
            {
                listBoxSelectToLedger.Items.Add(objDataRowView["item_name"].ToString());
            }
        }
        else
        {
            MessageBox.Show("No Item selected");

        }