Je tente d'autoriser mes utilisateurs à faire glisser et déposer certaines lignes de données d'un contrôle de liste personnalisé à un autre, où le second contrôle de liste se trouve dans une autre instance de la même application.Glisser des données entre instances
DoDragDrop(parameterTypedListView.SelectedObjects, DragDropEffects.Copy);
où parameterTypedListView.SelectedObjects
est un IList générique où T est une classe personnalisée contenant uniquement les champs types de valeur/propriétés.
Dans l'événement OnDragDrop, j'essaie d'extraire ces données mais j'obtiens seulement un objet System.__ComObject
... qui semble hériter de System.MarshalByRefObject
. En bref: Comment extraire les données dans un format orienté objet que je peux réellement utiliser? Editer: Définir ma classe personnalisée comme étant sérialisable n'a aucun effet perceptible de quelque manière que ce soit. Je peux énumérer les __ComObject:
foreach (var dataObject in (IEnumerable) e.Data.GetData("System.Collections.ArrayList"))
{
// this actually enumerates the correct number of times, i.e. as many times as there are items in the list.
}
mais chaque dataObject est, en soi, un système .__ ComObject que je ne peux pas jeter à quoi que ce soit utile.
nous parlons du même programme en cours d'exécution deux fois dans 2 cas différents? – Konstantinos
@Konstantinos, Oui, plusieurs instances de la même application. –