2014-04-17 4 views
0

J'ai un problème avec C# using.Net 4.5.ListBoxItem Content Cast Impossible

Quand je .Net 3.5, je ne l'ai pas eu aucun problème, mais depuis que je changé mon projet .Net 4.5, quand je fais mon glisser & déposer sur ListBoxItem entre deux listBox je une exception:

"Impossible de lancer un objet de type MS.Internal.Named.Object dans le type ..."

Des idées concernant le problème?

(Désolé pour mon anglais, je suis français ^^)

EDIT: Oui, et je perdre des données lors de l'utilisation "comme ...". Enfin, j'ai redéfini mes fonctions pour Drag & Frop et le problème est résolu.

Voici le code pour le glisser & déposer si quelqu'un est intéressé :):

région

Drag & Goutte

/// <summary> 
    /// Define the action when the left mouse button is pressed while the mouse pointer is over this element. Permit to get the shape selected by the clic 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    private void ListBoxShapeCluster_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) 
    { 
     System.Windows.Controls.ListBox parent = (System.Windows.Controls.ListBox)sender; 
     dragSource = parent; 
     object data = GetDataFromListBox(dragSource, e.GetPosition(parent)); 

     if (data != null) 
     { 
      DragDrop.DoDragDrop(parent, data, System.Windows.DragDropEffects.Move); 
     } 

    } 
    /// <summary> 
    /// Define the action of the drag enter 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    private void ListBoxShapeCluster_DragEnter(object sender, System.Windows.DragEventArgs e) 
    { 
     object data = e.Data.GetData(typeof(Retro.Model.core.Shape)); 
     if (data != null) 
     { 
      AllShapesOfCurrentCluster.Remove((Retro.Model.core.Shape)data); 
     } 

    } 
    /// <summary> 
    /// Define the action for drop a shape in a new cluster 
    /// </summary> 
    /// <param name="sender"></param> 
    /// <param name="e"></param> 
    private void ListBoxShapeCluster_Drop(object sender, System.Windows.DragEventArgs e) 
    { 

     System.Windows.Controls.ListBox parent = (System.Windows.Controls.ListBox)sender; 
     object data = e.Data.GetData(typeof(Retro.Model.core.Shape)); 
     if (data != null) 
     { 
      AllShapesOfCurrentCluster.Add((Retro.Model.core.Shape)data); 
     } 

    } 



    #endregion 
+0

Peut-être votre objet traîné a changé tapez en transition à 4.5 –

+0

Quel est le type réel complet de votre objet déplacé (le tout avec le nom fort de l'assemblage) et le fu ll tapez vous à couler dans? –

Répondre

0

Avez-vous essayé

_dragged.Content AS Retro.Model.core.Shape 
+0

Oui, et je perds quelques données quand j'utilise "as ...". Finalement, j'ai redéfini mes fonctions pour Drag & Frop et le problème est résolu. Voici le code pour le Drag & Drop si quelqu'un est intéressé :): – user3545216