[c#] ListView dodawanie i usuwanie

0

Witam,

   Mam dwa listviewy i 2 buttony Dodaj i Usuń

wszystko wygląda jak na screenie : http://img249.imageshack.us/img249/4985/41747076.jpg

Dodawanie:

if (lv1.SelectedItems.Count > 0)
                if (lv1.SelectedItems[0].Text != "")
                {
                    lv2.Items.Add(lv1.SelectedItems[0].Text);
                    lv1.SelectedItems[0].Remove();
                }

Usuwa z jednego i dodaje do drugiego i teraz problem - jak najlepiej usunąć element z drugiej kolumny i dodać go do pierwszej kolumny w takiej kolejności jak był on zapisany w edytorze, np:

ListView(lv1) zapisany w edytorze
A
B
C
D
F

Dodaj - C i D
(lv1) (lv2)
A C
B D
F

Usuń - C i D
A
B
C
D
F

Mam nadzieje że napisałem w miare zrozumiale :)

0

Musisz znaleźć odpowiednie miejsce i tam wstawić.

private void ButtonAddClick(object sender, EventArgs e)
{
    ChangeParentForSelected(listViewSource, listViewDestination);
}

private void ButtonRemoveClick(object sender, EventArgs e)
{
    ChangeParentForSelected(listViewDestination, listViewSource);
}

private void ChangeParentForSelected(ListView source, ListView destination)
{
    if (source.SelectedItems.Count > 0)
    {
        ListViewItem item = source.SelectedItems[0];
        source.Items.Remove(item);
        int i = 0;
        foreach (ListViewItem tmp in destination.Items)
        {
            if (tmp.Text.CompareTo(item.Text) > 0)
            {
                break;
            }
            i++;
        }
        destination.Items.Insert(i, item);
    }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1