2008-10-08 6 views
4

J'essaye de donner une fonctionnalité de classement par glisser-déposer ListBox et j'ai frappé un mur. Je l'ai eu pour fonctionner quand je spécifie les éléments de boîte de liste dans xaml mais cela ne fonctionne pas quand je lie à une liste il ne fonctionne plus parce que les articles ne sont plus d'un type de listboxitem.Silverlight 2.0 RC Glisser-déposer d'un ListBox

J'ai trouvé ce code http://blog.dobaginski.com/josh/?p=52 qui me permet d'obtenir le ListBoxItem sous-jacent mais je n'arrive pas à déclencher l'événement de déplacement de la souris.

J'ai parcouru d'autres tutoriels mais je n'ai pas réussi à en trouver un qui traite d'un ListBox. Quelqu'un at-il fait cela avec un ListBox.

Les événements que j'utilise sont SelectedChange, MouseMove et LeftMouseButtonUp (je pense que ce nom est correct). Je n'utilise pas LeftMouseButtonDown parce que je n'ai pas pu le faire fonctionner. Pour autant que je sache, vous ne pouvez pas accéder au conteneur de l'élément de la liste en utilisant la liaison de données.

+0

Quels événements mettez-vous dans les éléments de la zone de liste d'origine? J'ai essayé de reproduire votre problème, mais j'ai besoin d'un peu plus d'informations. – Bryant

Répondre

1

Vous pourriez en Beta 1.

Vous ne pouvez pas non plus définir un gestionnaire d'événements de la souris dans le style, vous devez utiliser un modèle de données, juste pour que vous le sachiez.

Vous devrez probablement utiliser l'événement de déplacement de la souris à partir d'un élément parent, probablement le contrôle UserControl ou le contrôle de disposition principal qui héberge la liste.

Les changements d'état et les animations doivent être dans le style si ... vous ne pouvez toujours pas accéder à l'élément de la zone de liste, mais simplement à l'élément qui s'y trouve dans le modèle de données. Oh, et si vous faites glisser et déposer, HitTest est maintenant protégé, ce qui rendra le Drop plus dur.

1

depuis aujourd'hui, vous pouvez télécharger la version 2.0 finale de Silverlight avec quelques add-ons, vérifiez la Scott's web log

1

J'ai essayé de faire la même chose dans WPF, mais ont seulement trouvé de nombreuses implémentations buggy.

Une personne m'a guidé vers le blog de Beatriz Costa, et de ce que je me souviens qu'elle est l'un de ces rares geniouses, donc je vous suggère de lire ça aussi ... Je sais que je vais

Blog of Beatriz Costa

Questions connexes