Как получить индексы нескольких элементов, которые были выбраны в списке - PullRequest
0 голосов
/ 14 сентября 2011

Я хочу получить индексы всех элементов, выбранных в данном списке, есть метод SelectedItems, который возвращает коллекцию элементов:

listbox.SelectedItems

Но нет SelectedIndices метода. Коллекция также не содержит индекса для каждого элемента.

Как узнать, какой элемент был выбран в моем списке?

Ответы [ 2 ]

1 голос
/ 14 сентября 2011

Вы можете просто использовать IndexOf, чтобы найти их индекс в коллекции предметов. Например, при связывании коллекции элементов:

// create your list of items to display
List<MyObject> items = new List<MyObject>();

// NOTE: populate your list here!

// bind the items
listBox.ItemsSource = items;

Вы можете найти выбранный индекс следующим образом:

var selectedItem = (MyObject)listBox.SelectedItems[0]
int index = items.IndexOf(selectedItem);
1 голос
/ 14 сентября 2011

Если вы привязываете List или ObservableCollection элементов к ListBox, используйте

var indices = new List<Int32>();
foreach( var item in listbox.SelectedItems ) {
  var index = boundList.IndexOf( item as MyDataType );

  if( index != -1 ) {
    indices.Add( index );
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...