Overblog Suivre ce blog
Editer l'article Administration Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles Récents

7 avril 2014 1 07 /04 /avril /2014 14:52

  
Je définis un UserControl simple pour lequel j’ai une propriété texte (d’un TextBlock)  avec laquelle je veux pouvoir intéragir depuis la page principale.

 

Le userControl Silverlight nommé « bubble.xaml »
<Grid x:Name="LayoutRoot" >
        <Ellipse HorizontalAlignment="Left" VerticalAlignment="Top" 
                 Height="150" Width="150"
                 Fill="SkyBlue" Stroke="White" StrokeLineJoin="Round"  />
        <TextBlock x:Name="tb" Foreground="White"  HorizontalAlignment="Center" VerticalAlignment="Center"  />
    </Grid>

 

Dans le code behind du userControl
Le Dependency est déclaré Readonly et static . On définit :
Le nom de la propriété de dépendance à inscrire (ici SetText)
Le type de cette propriété (ici string)
Le type du propriétaire qui inscrit la propriété de dépendance (ici le userControl « Bubble »)
Metadata, pouvant contenir un PropertyChangedCallback (qui pointe ici sur SetNewText,  static avec en premier argument le DependencyObject, en second argument le DependencyPropertyChangedEventArgs)
public partial class Bubble : UserControl
    {
        public Bubble()
        {
            InitializeComponent();
        }
 
        public static readonly DependencyProperty SetTextBoxProperty =
            DependencyProperty.Register("SetText", typeof(string), typeof(Bubble),
            new PropertyMetadata(new PropertyChangedCallback(SetNewText)));
       
        // property accessible
        public string SetText
        {
            get { return (string)GetValue(SetTextBoxProperty); }
            set { SetValue(SetTextBoxProperty, value); }
        }
 
        private static void SetNewText(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            (d as Bubble).tb.Text = e.NewValue.ToString();
        }
    }

 

MainPage.xaml 
J’ai accès à ma propriété SetText dans le Xaml
  <Grid x:Name="LayoutRoot" Background="White">
        <View:Bubble x:Name="bubble1" SetText="Coucou !" HorizontalAlignment="Left" Margin="155,22,0,0" VerticalAlignment="Top"/>
 
    </Grid>

 

      En C# dans le code behind  

   bubble1.SetText = "Coucou !";

Partager cet article

Repost 0
Published by Romagny13 - dans Silverlight
commenter cet article

commentaires