当我在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;
}
}
试试这个。对于添加方法:
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项目的源,数组列表超出了范围。