La liaison Silverlight UserControl propriétés personnalisées à ses éléments

Je suis en train de faire un simple jeu de puzzle de mots croisés de Silverlight 2.0. Je suis en train de travailler sur un UserControl-ish composant qui représente un carré dans le puzzle. Je vais avoir des problèmes avec la liaison de mon UserControl propriétés avec ses les " éléments. J'ai enfin (un peu) eu de travail (peut être utile pour certains, il m'a fallu quelques longues heures), mais a voulu le rendre plus "élégante".

J'ai imaginé qu'il devrait avoir un compartiment pour le contenu et une étiquette (dans le coin supérieur droit) qui contient éventuellement son numéro. Le contrôle de contenu probablement être une zone de texte, tandis que l'étiquette de contrôle pourrait être un TextBlock. J'ai donc créé un UserControl avec cette structure de base (les valeurs sont codées en dur, à ce stade):

    <UserControl x:Class="XWord.Square"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    FontSize="30" 
    Width="100" Height="100">
        <Grid x:Name="LayoutRoot" Background="White">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>

            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>

            <TextBlock x:Name="Label" Grid.Row="0" Grid.Column="1" 
                Text="7"/>
            <TextBox x:Name="Content" Grid.Row="1" Grid.Column="0"  
                Text="A"
                BorderThickness="0" />

        </Grid>
    </UserControl>

J'ai également créé DependencyProperties dans le Carré de la classe comme ceci:

     public static readonly DependencyProperty LabelTextProperty;
     public static readonly DependencyProperty ContentCharacterProperty;

     //...(static constructor with property registration, .NET properties
     //omitted for brevity)...

Maintenant, j'aimerais comprendre comment lier l'Étiquette et le Contenu de l'élément pour les deux propriétés. Je fais comme ça (dans le fichier code-behind):

     Label.SetBinding( TextBlock.TextProperty, new Binding { Source = this, Path = new PropertyPath( "LabelText" ), Mode = BindingMode.OneWay } );
     Content.SetBinding( TextBox.TextProperty, new Binding { Source = this, Path = new PropertyPath( "ContentCharacter" ), Mode = BindingMode.TwoWay } );

Qui serait plus élégant fait dans le code XAML. Personne ne sait comment c'est fait?

  • Une question importante mais difficile à répondre.