Drag and Drop entre ListView et TextBox - C#/.NET managed - Programmation
Marsh Posté le 10-07-2016 à 10:51:02
Si
Pour un truc sensé être super puissant et faciliter la vie moi je trouve ça lourd le drag drop en UAP.
Voilà un truc qui fait exactement ce que tu demandes, j'ai modifié deux méthodes de ton exemple :
Code :
|
L'idée c'est qu'au moment du Drag tu enregistres dans le DataPackage lié à l'événement le truc à emmener, et tu le récupères lors du Drop.
Là j'ai utilisé du Text et un bricolage à base de split pour passer l'id et le nom.
En théorie DataPackage a aussi une méthode SetData, mais je ne sais pas l'utiliser pour des objets Custom ( ), mais on trouve des exemples sur Internet.
Mon exemple ne permet de dropper qu'un seul élément à la fois, mais c'est ce que tu veux apparemment.
Il y a peut être d'autre façons de faire (genre récupérer l'objet droppé avec les données qui ont servi à le binder) mais celle la fonctionne.
Marsh Posté le 10-07-2016 à 14:21:22
Merci TotalRecall !!
J'allais poster une solution moins "propre" mais qui fonctionne pour moi :
J'ai créé une variable de "transfert" :
Code :
|
Au niveau du drag je l'ai mis sur le StackPanel du DataTemplate plutôt que sur la Listview elle même et j'ai fait la méthode suivante :
Code :
|
Et au niveau du Drop je recopie les valeurs de ma variable (dans mon projet finale il y aura plusieurs TextBox et du coup le Drop me permet de savoir ou copier mes infos) :
Code :
|
C'est pas le plus correct mais pour moi ça fonctionne !!
Merci encore.
Nico
Marsh Posté le 11-07-2016 à 11:44:54
C'est sale (variable privée utilisée juste pour ça et ça ne suit pas le modèle de développement suggéré par MS) mais ça marche aussi tant que tu ne gères pas des dizaines de drag drop entre des tas de contrôles différents
Fais juste quelques nulls check (ex : actuellement je pense que si on vient dropper sur ta textbox un truc qui vient de n'importe où, genre le bureau, ton programme explose en vol)
Marsh Posté le 12-07-2016 à 21:04:41
J'avais prévu de mettre des sécurités un peu partout. La mon code est très simplifié pour aller plus vite !
En tout cas encore merci pour ton aide. Je vais poster une autre question pour un autre petit problème. Mais celui ci est "réglé" !
Marsh Posté le 06-07-2016 à 17:47:06
Salut à tous,
Je viens vers vous car je n'arrive pas à trouver une réponse simple à mon problème.
Je voudrais, comme le titre l'indique, prendre un item de ma listview et le déposer dans ma textbox.
(Plus complètement je voudrais afficher dans la textbox le nom qu'il y a sur mon item et dans le Tag placer l'ID référencé avec)
Pour être plus clair je vais coller mon code...
Voici ma MainPage :
Son code behind :
et ma classe Person :
Mon but étant que lors du déposer dans ma textBox, le prénom et le nom s'affiche dans la textBox et l'id se place dans la propriété Tag (si c'est possible bien sur!)
J'ai essayé plain de chose mais rien n'y fait !
Merci d'avance pour votre aide.
Nico