当我在WPF中将列表框项目从listbox1移动到listbox2时遇到麻烦

本文关键字:移动 listbox1 listbox2 麻烦 遇到 项目 WPF 列表 | 更新日期: 2023-09-27 18:06:44

我试图实现一些事情一个这些行,我有两个列表框listbox1和listbox2,我有添加和删除按钮分别将项目从一个列表框移动到另一个。由于某些原因,我无法在移动几次后从列表框中选择项目。

我使用下面的代码

添加按钮的逻辑

ArrayList listitems1 = new ArrayList();
        ArrayList listitems2 = new ArrayList();
        if (listBox2.SelectedItem == null)
        {
            System.Windows.MessageBox.Show("*Please Select unassigned Wks ");
            return;
        }
        else
        {
            try
            {
                foreach (string st in listBox2.Items)
                {
                    listitems1.Add(st);
                }
                foreach (string st1 in listBox1.Items)
                {
                    listitems2.Add(st1);
                }
                if (listBox2.SelectedIndex > -1)
                {
                    string value = listBox2.SelectedItem.ToString();
                    string text = listBox2.SelectedItem.ToString();
                    listitems2.Add(value);
                    listBox1.ItemsSource = listitems2;
                    listitems1.Remove(value);
                    listBox2.ItemsSource = listitems1;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

      **logic for delete button:**
        ArrayList listitems1 = new ArrayList();
        ArrayList listitems2 = new ArrayList();
        if (listBox2.SelectedItem == null)
        {
            System.Windows.MessageBox.Show("*Please Select unassigned Wks ");
            return;
        }
        else
        {
            try
            {
                foreach (string st in listBox2.Items)
                {
                    listitems1.Add(st);
                }
                foreach (string st1 in listBox1.Items)
                {
                    listitems2.Add(st1);
                }
                if (listBox2.SelectedIndex > -1)
                {
                    string value = listBox2.SelectedItem.ToString();
                    string text = listBox2.SelectedItem.ToString();
                    listitems2.Add(value);
                    listBox1.ItemsSource = listitems2;
                    listitems1.Remove(value);
                    listBox2.ItemsSource = listitems1;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        ArrayList listitems1 = new ArrayList();
        ArrayList listitems2 = new ArrayList();
        try
        {
            foreach (string st in listBox2.Items)
            {
                listitems1.Add(st);
            }
            foreach (string st1 in listBox1.Items)
            {
                listitems2.Add(st1);
            }
            if (listBox1.SelectedIndex > -1)
            {
                string value = listBox1.SelectedItem.ToString();
                string text = listBox1.SelectedItem.ToString();
                listitems1.Add(value);
                listBox2.ItemsSource = listitems1;
                listitems2.Remove(value);
                listBox1.ItemsSource = listitems2;
            }
        }

当我在WPF中将列表框项目从listbox1移动到listbox2时遇到麻烦

试试这个。对于添加方法:

if (listBox2.SelectedItem == null)
{
    System.Windows.MessageBox.Show("*Please Select unassigned Wks ");
    return;
}
else
{
    if (listBox2.SelectedIndex > -1)
    {
        Object obj = listBox2.SelectedItem;
        listBox1.Items.Add(obj);
        listBox2.Items.Remove(obj);
    }
}

对delete方法做类似的操作。我认为问题可能是你正在使用数组列表作为ListBox项目的源,数组列表超出了范围。