2009-12-08 2 views
1

У меня есть два списка, в которые я перетаскиваю один элемент из другого в другой. Использование ноябрьской версии 2009 года ListBoxDragDropTarget для Silverlight 3 Toolkit. У меня есть EventHandler в событии Drop второго списка. Я пытаюсь получить индекс элемента, который вставлен, чтобы я мог видеть, что происходит перед ним в коллекции элементов. Кто-нибудь знает, как получить индекс элемента, который будет добавлен в упавший элемент?Silverlight 3 Toolkit - ListBoxDragDropTarget

ответ

1

Я думаю, что я понял решение.

В ListBox (toList) есть ItemContainerGenerator, который имеет событие ItemsChanged. Мне удалось получить элемент, который был сброшен в ListBox, проверив, чтобы было добавлено действие ItemsChangedEventArgs (e), а затем выяснилось, что индекс основан на позиции, которая была возвращена из ItemsChangedEventArgs. Ниже приведен код.

Только что переданный InitializeComponent() добавляет новый обработчик событий.

toList.ItemContainerGenerator.ItemsChanged + = новый System.Windows.Controls.Primitives.ItemsChangedEventHandler (ItemContainerGenerator_ItemsChanged);

Затем добавьте обработчик.

недействительными ItemContainerGenerator_ItemsChanged (объект отправителя, System.Windows.Controls.Primitives.ItemsChangedEventArgs е) {если (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) {INT индекс = (e.Position.Index + e.Position.Offset); объект obj = toList.Items [index];}}

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