2010-03-30 9 views
3

Je reçois l'erreur suivante dans mon application Silverlight. Mais je ne peux pas comprendre quel contrôle c'est le problème. Si je le débogue ne casse rien sur le code, il échoue juste dans ce callstack de cadre avec seulement le code de cadre. Est-il possible d'obtenir plus d'informations sur la partie d'une application Silverlight qui est le problème dans ce cas.L'élément est déjà l'enfant d'un autre élément

 
Message: Sys.InvalidOperationException: ManagedRuntimeError error #4004 in control 'Xaml1': System.InvalidOperationException: Element is already the child of another element. 
at MS.Internal.XcpImports.CheckHResult(UInt32 hr) 
at MS.Internal.XcpImports.Collection_AddValue[T](PresentationFrameworkCollection`1 collection, CValue value) 
at MS.Internal.XcpImports.Collection_AddDependencyObject[T](PresentationFrameworkCollection`1 collection, DependencyObject value) 
at System.Windows.PresentationFrameworkCollection`1.AddDependencyObject(DependencyObject value) 
at System.Windows.Controls.UIElementCollection.AddInternal(UIElement value) 
at System.Windows.PresentationFrameworkCollection`1.Add(T value) 
at System.Windows.Controls.AutoCompleteBox.OnApplyTemplate() 
at System.Windows.FrameworkElement.OnApplyTemplate(IntPtr nativeTarget) 

Le XAML pour la AutoCompeletBox qui est dans le contexte:

<tk:AutoCompleteBox 
    x:Name="acName" 
    Grid.Row="0" 
    Grid.Column="1" 
    LostFocus="acName_LostFocus" 
    Height="20" 
    Width="80" 
    HorizontalAlignment="Left"/> 
+0

Il essaie d'ajouter quelque chose à un AutoCompleteBox. Si vous avez seulement un AutoCompleteBox, postez le XAML pour cela. Si non, supprimez-les jusqu'à ce que l'application fonctionne, puis postez le code XAML pour le dernier que vous avez supprimé. – Gabe

Répondre

0

Vos articles peuvent être des éléments visuels, au lieu des objets de données.

Si vous fournissez le code XAML, je peux m'assurer que c'est le cas.

0

Habituellement, cette erreur se produit lorsque ledit élément est déjà attaché à un parent existant et que quelque part dans votre code vous tentez de le re-parent (par exemple, ajoutez simplement "ajouter" quand vous devez retirer l'enfant de le parent d'abord, puis l'ajouter aux enfants etc).

Lorsque spécifiquement le contrôle échoue, les informations ci-dessus ne sont pas suffisantes pour être digérées.

-4

solution simple et stupide:

public class AutoCompleteTextBox : AutoCompleteBox 
    { 
     public override void OnApplyTemplate() 
     { 
      try 
      { 
       base.OnApplyTemplate(); 
      } 
      catch { } 
     } 
    } 
+3

Cela ne résout pas le problème, juste le cache. –