2015-07-28 3 views
0

Я получаю правильно выбранный объект в TreeListView при чтении SelectedObjects, однако он терпит неудачу, когда элементы выбраны с помощью клавиши shift. В этом случае я получаю пустые списки для SelectedObjects и SelectedIndices, а SelectedIndex возвращает -1.Как получить выбранные объекты в ObjectListView

Дисплей показывает правильный выбор.

Я пробовал перемещаться по всем объектам в дереве и проверять с помощью IsSelected, но также получаю пустой список.

Как только я добавлю с помощью ctrl, нажмите на дополнительный элемент. Я снова получаю правильный выбор.

Как я могу получить правильный выбор в этом случае? Как я могу отключить выбор сдвига в противном случае?

Использование ObjectListView 2.8.1

+0

Он работает для меня с использованием выбора SHIFT. Я подключил событие treeListView_SelectionChanged и написал на консоль информацию 'treeListView.SelectedObjects'. Он правильно удерживает родительские и дочерние объекты, выбранные с помощью SHIFT + левого клика. –

+0

Я тестировал с 2.7 и 2.8.1. Может быть, его некоторые настройки ... –

+0

Я протестировал его с демо-проектом, где я только что добавил обработчик для SelectedIndexChanged, и я получаю пустой список для SelectedObject с ключом Shift. Если это неправильное событие (SelectionChanged), позвольте мне проверить его завтра , –

ответ

1

Как rev1.0 отметил, что это проблема с неправильным обработчика событий. Ответ на SelectionChanged дает правильные результаты. Однако я не нашел его в документации.

Причина использования SelectedIndexChanged по сравнению с SelectionChanged состояла в том, чтобы в моем случае форма была размещена другим приложением, которое не возбуждает событие Application.Idle. Это, однако, можно легко устранить с помощью свойства CanUseApplicationIdle. Это отличный контроль.