2013-02-09 5 views
1

Это может быть глупый вопрос, но ... Как я мог реализовать максимальное количество выбранных элементов в представлении listview/gridview?Установить максимальное количество выбранных элементов

Я имею ListView с 9 пунктов, из которых я хотел бы, чтобы пользователь имел возможность выбрать только 5.

До сих пор у меня это реализовано в SelectionChanged события:

if (MyListView.SelectedItems.Count >5) 
    MyListView.SelectedItems.RemoveAt(0); 

Что смешно, но уклончивый способ сделать это, когда получает выбран шестой элемент, то первый получает deselcted, так alwyays они остаются 5.

то, что я хотел бы, хотя, когда у меня есть 5 пунктов уже выбранный, чтобы не было возможности выбирать других дальше, если только я не desele ct пункт между тем и я отвечаю условию SelectedItems.Count < 5.

Любые предложения, идеи, код очень оценены.

ответ

1

Это был глупый вопрос, на самом деле ... Думал много, и у меня не было никаких идей на всех, только 5 минут после того, как я отправил это ... и код выглядит следующим образом:

if (MyListView.SelectedItems.Count >5) 
    MyListView.SelectedItems.RemoveAt(MyListView.SelectedItems.Count-1); 
0

EventHandler :

this.MyListView.ItemSelectionChanged += new System.Windows.Forms.ListViewItemSelectionChangedEventHandler(this.MyListView_ItemSelectionChanged); 

Код:

private void MyListView_ItemSelectionChanged(object sender,  ListViewItemSelectionChangedEventArgs e) 
    { 
     if (MyListView.SelectedItems.Count > 5) 
     { MyListView.SelectedItems[0].Selected = false; } 
    } 
+0

Мой пример удаляет первый элемент, который был выбран, ваше решение удаляет последний элемент выбора до новой. Что бы ни работало для вас. –

Смежные вопросы