I store in dictionary all the values of listView in dictionary-value and store its index in dictionary-keys at form load. I am using dictionary as a medium of index storage for corresponding transferred listitems.
Now i transfer from a to b on a button click (a listview is full and b is empty) then i do again transfer the same element from b to a on another button click. It is now appended at last when i do back to b->a transfer. But i want it to append on same index on which it was before transferring to a->b.
I mean when i do b->a transfer then it must go to same index where it used to stay before
My code is this (please correct me where i am wrong and please give me a solution)
        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;
        }