'- Element ist bereits das Kind von einem anderen element' error in Silverlight-Anwendung.xaml
Ich erhalte eine seltsame Fehlermeldung in meinen App.xaml
Datei:
Element ist bereits das Kind eines anderen Elementes.
Meine App.der xaml-Datei sieht wie folgt aus:
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Celerior.Annapurna.SL.App">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ProvisiorResourceDictionary.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
Fehler gemeldet wird für die gesamte ResourceDictionary
element (aus den Zeilen 5 bis 9).
ProvisiorResourceDictionary.xaml
enthält eine Reihe von Stilen und Vorlagen. Nichts aufregendes, meiner Meinung nach.
Weiß jemand, was ist falsch?
Freundlichen GRÜßEN,
Ronald Wildenberg
- Können Sie uns andere Informationen. Was ist in ProvisorResourceDictionary.xaml. Ist es auch anderswo benutzt? Es sind noch ein paar home grown Komponenten es dabei einige seltsame Dinge in Ihrer Konstruktoren oder property set-Prozeduren?
- Ich habe einige Infos auf meine Frage nach dem Inhalt der ProvisiorResourceDictionary. Es enthält nur Stile und Vorlagen. Vielleicht werde ich versuchen, das entfernen der code aus, es Stück für Stück, um zu sehen, ob das hilft.
- Ich habe eine Idee. Ich habe ein DataTemplate, dass ich hinzufügen, um zwei unterschiedliche template-Selektoren (benutzerdefinierte Klassen, erkennen Sie die Vorlage verwenden, basierend auf einige Informationen). Ist es unmöglich, eine Wiederverwendung DataTemplate ist??
Du musst angemeldet sein, um einen Kommentar abzugeben.
Fand ich die Ursache des Problems mich, Dank der Hinweise in den Kommentar von AnthonyWJones.
Es erscheint alles in einem Silverlight resource dictionary muss geteilt werden. Der Grund dafür ist, dass Elemente in einem resource dictionary wird (wahrscheinlich) Hinzugefügt werden an mehreren stellen in der führungshierarchie.
Hatte ich zwei Objekte, die sich in meine Ressourcen-Wörterbuch, dass die waren nicht teilbar.
BEARBEITEN: In WPF, können Sie die
x:Shared
Attribut auf Objekte, die sich in einem resource dictionary zu zwingen, WPF erstellen Sie eine neue Instanz für jede Ressource, Abruf. Leider, Silverlight nicht unterstützt dieses Attribut.x:Name
stattx:Key
auf eines der Elemente.Wahrscheinlich NICHT eine Antwort auf diese Frage aber ein weiterer häufiger Grund kann man dieses "Element ist bereits das Kind eines anderen Elements." - Fehler, wenn Sie versuchen zu laden, eine Ressource, wie ein image und du hast den Dateinamen falsch.
IE besonders beklagt wird sich darüber beschweren.
Da jedoch diese ist im Zusammenhang mit Ressourcen gibt es möglicherweise ein Szenario, in denen dieses wäre eine Antwort auf diese Frage 🙂
Ich hatte das gleiche problem, wenn ich überprüfte meine Styles.xaml-Datei, hatte es einige Elemente mit dem gleichen Namen, änderte ich den Namen der Elemente und machte Sie so einzigartig, und das Problem behoben 🙂
Scheint es diese auch oocurs wenn Sie versuchen, ein Storyboard mit einem Schlüssel in einem ResourceDictionary, anstatt Sie in einem ControlTemplate
Dies ist, weil Storyboard sind auf stateful-Objekte und können nicht wiederverwendet werden (Sie verfolgen, wenn Sie gestartet, pausiert etc.)
Den Tipp von @Simon_Weaver in der Antwort
führte mich um das Element zu finden, das erste, das ich tatsächlich entfernt; es wurde eine nicht verwendete Pfad-Objekt:
als Täter. Nach Resource Dictionaries # - Objekte für Ressourcen-Wörterbuch Verwendung, es gibt nicht eine
Path
als ein gemeinsam nutzbares Element.