Как выбор из списка изменил работу события. Это называется Twise
У меня есть элемент управления представлением списка, в котором при изменении выбора я проверяю - если количество выбранных записей больше нуля, тогда активируются только элементы управления групповым блоком, в противном случае он отключается. Потому что эти элементы управления относятся только к выбранной записи. если ни одна запись не выбрана, то она не должна быть включена.
Следующее - выбранное измененное событие моего списка:
Private Sub lv_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lv.SelectedIndexChanged
If lv.SelectedItems.Count() > 0 Then
...
.
ResetifNorecordSelectedState(False)
Else
..
ResetifNorecordSelectedState(True)
End If
Проблема: каждый раз, когда пользователь меняет выбор записи, элементы управления отключаются и следуют за включенным состоянием. Это делает неудобным дизайн для пользователя.
Может ли кто-нибудь поделиться со мной решением или что я должен изменить здесь, чтобы исправить эту проблему.?
Спасибо
1 ответ
ListView запускает SelectedIndexChanged
и когда строки выделены, и когда они отменены. Таким образом, нажатие на новую строку запускает два события: одно для отмены выбора старой строки, другое для выбора новой строки.
В вашем событии SelectedIndexChanged запланируйте запуск другого метода во время простоя, но обязательно запланируйте один из них:
// If we haven't already scheduled an event, schedule it to be triggered
// By using idle time, we will wait until all select events for the same
// user action have finished before triggering the event.
if (!_hasIdleHandler) {
_hasIdleHandler = true;
Application.Idle += HandleDeferredSelectionChanged;
}
Тогда в вашем HandleDeferredSelectionChanged
ты можешь работать ты
private virtual void HandleDeferredSelectionChanged(object sender, EventArgs e) {
// Remove the handler before triggering the event
Application.Idle -= HandleDeferredSelectionChanged;
_hasIdleHandler = false;
// do your checking here
}
Эти идеи из ObjectListView, которые уже решают многие проблемы, с которыми вы столкнетесь ListView
,