2009-12-08 7 views
1

J'ai deux listes déroulantes que je suis en train de faire glisser un élément à l'autre. Utilisation de la version de novembre 2009 du ListBoxDragDropTarget de Silverlight 3 Toolkit. J'ai un EventHandler sur l'événement Drop de la deuxième liste. J'essaye d'obtenir l'index de l'article qui est inséré afin que je puisse voir ce qui vient avant lui dans la collection d'article. Est-ce que quelqu'un sait comment obtenir l'index de l'article à ajouter sur un objet abandonné?Silverlight 3 Toolkit - ListBoxDragDropTarget

Répondre

1

Je pense avoir trouvé la solution.

Sur la zone de liste (toList) il y a une ItemsContainerGenerator qui a un événement ItemsChanged. J'ai été en mesure de faire tomber l'élément dans le contrôle ListBox en vérifiant que l'action ItemsChangedEventArgs (e) était ajoutée, puis en calculant l'index en fonction de la position renvoyée par ItemsChangedEventArgs. Voici le code.

vient de passer le InitializeComponent() ajouter le nouveau gestionnaire d'événements.

toList.ItemContainerGenerator.ItemsChanged + = new System.Windows.Controls.Primitives.ItemsChangedEventHandler (ItemContainerGenerator_ItemsChanged);

Ensuite, ajoutez le gestionnaire lui-même.

vide ItemContainerGenerator_ItemsChanged (objet expéditeur, System.Windows.Controls.Primitives.ItemsChangedEventArgs e) {if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add) {int index = (e.Position.Index + e.Position.Offset); objet obj = toList.Items [index];}}

Questions connexes