"Élément est déjà l'enfant d'un autre élément" erreur dans l'Application Silverlight.xaml
Je reçois une erreur étrange à l'intérieur de mon App.xaml
fichier:
Élément est déjà l'enfant d'un autre élément.
Mon Application.fichier xaml ressemble à ceci:
<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>
L'erreur est signalée pour l'ensemble de la ResourceDictionary
élément (lignes 5 à 9).
ProvisiorResourceDictionary.xaml
contient un certain nombre de styles et de modèles. Rien de passionnant à mon avis.
Personne ne sait quel est le problème?
Salutations,
Ronald Wildenberg
Pouvez-vous donner d'autres infos. Qu'est-ce que dans ProvisorResourceDictionary.xaml. Il est également utilisé ailleurs? Certaines cultivés à la maison des composants en faire de drôles de choses dans leurs constructeurs ou des biens de définir des procédures?
J'ai ajouté quelques infos à ma question sur le contenu de ProvisiorResourceDictionary. Il contient des styles et des modèles. Peut-être que je vais essayer d'enlever le code de pièce par pièce pour voir si cela aide.
J'ai une idée. J'ai un DataTemplate que j'ajoute à deux modèle différent sélecteurs (classes personnalisées qui permettent de détecter le modèle à utiliser en fonction des infos). Est-il impossible de réutiliser DataTemplate??
J'ai ajouté quelques infos à ma question sur le contenu de ProvisiorResourceDictionary. Il contient des styles et des modèles. Peut-être que je vais essayer d'enlever le code de pièce par pièce pour voir si cela aide.
J'ai une idée. J'ai un DataTemplate que j'ajoute à deux modèle différent sélecteurs (classes personnalisées qui permettent de détecter le modèle à utiliser en fonction des infos). Est-il impossible de réutiliser DataTemplate??
OriginalL'auteur Ronald Wildenberg | 2009-11-13
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé la cause du problème moi-même, merci pour les conseils fournis dans le commentaire par AnthonyWJones.
Il semble tout à l'intérieur de Silverlight dictionnaire de ressources doit être partageable. La raison en est que les éléments à l'intérieur d'un dictionnaire de ressources sera (probablement) être ajouté à plusieurs endroits dans le contrôle de la hiérarchie.
J'ai eu deux éléments à l'intérieur de mon dictionnaire de ressources qui n'étaient pas partageable.
MODIFIER: Dans WPF, vous pouvez utiliser le
x:Partagé
attribut sur les objets à l'intérieur d'un dictionnaire de ressources à force de WPF pour créer une nouvelle instance, pour toutes les ressources de la récupération. Malheureusement, Silverlight ne prend pas en charge cet attribut.J'ai eu cette erreur et s'est avéré l'un de nos développeurs de mettre en
x:Name
au lieu dex:Key
sur l'un des éléments.OriginalL'auteur Ronald Wildenberg
Probablement PAS une réponse à cette question mais une autre raison, vous pouvez obtenir ce que l'Élément est déjà l'enfant d'un autre élément." erreur si vous essayez de charger une ressource, comme une image et vous avez le nom de fichier incorrect.
IE en particulier se plaint va se plaindre à ce sujet.
Cependant, comme c'est lié à des ressources, il pourrait être un scénario où ce serait une réponse à cette question 🙂
OriginalL'auteur Simon_Weaver
J'ai eu le même problème, quand j'ai vérifié mon Styles.fichier xaml, il avait des éléments avec le même nom, j'ai changé le nom des éléments et fait unique, et le problème résolu 🙂
OriginalL'auteur Zain Shaikh
Il semble que cela aussi oocurs si vous essayez de mettre une table de montage avec une Clé à l'intérieur d'un ResourceDictionary, au lieu de le mettre à l'intérieur d'un ControlTemplate
C'est parce que Storyboard sont des objets ayant et ne peuvent pas être réutilisés (qu'ils suivent, si elles ont commencé, pause, etc.)
OriginalL'auteur George Birbilis
L'avis de @Simon_Weaver dans la réponse
m'a conduit à trouver ce point, le premier que j'ai retiré en fait; c'était un inutilisés chemin d'accès de l'objet:
comme le coupable. En fonction de Les Dictionnaires de ressources #Objets de Ressources pour l'emploi d'un Dictionnaire, il ne liste pas un
Path
comme partageable élément.OriginalL'auteur ΩmegaMan