【发布时间】:2016-05-10 10:04:29
【问题描述】:
我将 listView 的所有值存储在字典值中,并在表单加载时将其索引存储在字典键中。 我正在使用字典作为相应传输列表项的索引存储介质。
现在我在单击按钮时从 a 转移到 b(列表视图已满,b 为空)然后我再次在单击另一个按钮时将相同的元素从 b 转移到 a。当我回到 b->a 转移时,它现在终于附加了。但我希望它附加到它在转移到 a->b 之前所在的同一索引上。
我的意思是当我做 b->a 转移时,它必须转到它以前停留的相同索引
我的代码是这样的(请纠正我的错误并给我一个解决方案)
private void Form1_Load(object sender, EventArgs e)
{
//storing data in dictionary
}
private void button1_Click(object sender, EventArgs e)
{
MoveSelectedItems(listView1, listView2,0);
}
private void button2_Click(object sender, EventArgs e)
{
MoveSelectedItems(listView2, listView1,1);
}
private void MoveSelectedItems(ListView source, ListView target, int flag)
{
ListViewItem temp = source.SelectedItems[0];
source.Items.Remove(temp);
if(flag==0)//called when i do a->b
{
target.Items.Add(temp);
}
else
{
int index=getIndex(temp);
target.Items.Insert(index, temp);
}
}
private int getIndex(ListViewItem temp)
{
int index = 0;
if (dictList.ContainsValue(temp.Text))
{
foreach (KeyValuePair<int, string> pair in dictList)
if (temp.Text.Equals(pair.Value))
{
index=Convert.ToInt32(pair.Key);
return index;
}
}
return index;
}
【问题讨论】:
-
使用
Dictionary无法实现您想要的。有关更多信息,请参阅其他问题:stackoverflow.com/questions/7918328/… -
@GuillaumeBeauvois 还有其他选择吗?
-
@GuillaumeBeauvois 请仔细阅读我想要达到的目标.. 我希望在列表视图中添加(不在字典中)
-
我正在使用字典作为相应传输列表项的索引存储介质。