2010-12-16 2 views
0

J'ai créé un UserControl nommé Marked. Le code pour le contrôle est:Paramètre x: Le nom de la balise UserControl dans un contrôle UserControl bloque parfois l'application

<UserControl .... x:Name="marker"> 
    <StackPanel Orientation="Vertical" x:Name="LayoutRoot"> 

     <Image Source="{Binding Path=MarkSource, ElementName = marker}" Visiblity="{Binding Path=IsMarked}"/> 

    </StackPanel> 
</UserControl> 

Dans le code derrière j'ai défini deux propriétés de dépendance: MarkSource et IsMarked.

Lorsque j'utilise le contrôle je fais quelque chose comme ceci:

<my:Marker MarkSource="mark.jpg" IsMarked = {Binding Path=Person.IsActive}/> 

Le problème est le suivant: 1. Les travaux de contrôle personnalisé. 2. Parfois, lorsque je démarre l'application, je reçois l'erreur suivante: Xaml tree error le nom le marqueur existe déjà. Lorsque je redémarre l'application, cela fonctionne correctement.

J'ai essayé de retirer le x: du x: Name = "marker" à Name = "marker" mais la liaison sur l'image ne fonctionne pas. J'ai essayé de configurer la liaison dans le code derrière, cela ne fonctionne pas non plus.

Quel est le problème avec x: Name?

Répondre

1

Essayez d'offrir x:Name à votre contrôle image. Remplissez x:Name depuis votre UserControl
Dans le code derrière l'ensemble DataContext de votre image à this.
Supprimez ElementName = marker dans votre liaison.

+0

Samvel vous l'avez fait. Thanx mate. –

+0

Vous êtes les bienvenus :) –

Questions connexes