2010-04-19 5 views
2

Je suis nouveau au PAM et j'essaie de l'apprendre via différents exemples.Exposer les contrôles internes Propriété du contenu en tant que propriété [Contrôle de l'utilisateur]

En ce moment je veux créer un contrôle utilisateur personnalisé, qui ont un bouton à l'intérieur (parmi d'autres contrôles). Je veux exposer la propriété de contenu de boutons en tant que contrôles utilisateur propres.

User Control:

<DockPanel LastChildFill="True"> 
    <Button Name="ClickButton" DockPanel.Dock="Right" Focusable="False"/> 
    <TextBox Name="TextBox">lorem ipsum dolor set amet</TextBox> 
</DockPanel> 

Je souhaite modifier Boutons de contenu dans la fenêtre principale application, comme ça:

<my:ButtonTextBox Name="mtb1" Grid.Column="0" Grid.Row="0">Some text</my:ButtonTextBox> 

il Un texte, le texte à écrire sur le bouton. ..

Comment puis-je y parvenir? Merci!

Répondre

5

Votre UserControl doit définir sa propre propriété de dépendance du contenu bouton:

public static readonly DependencyProperty ButtonContentProperty = ...; 

lient ensuite le bouton de votre UserControl à cette propriété:

<Button Name="ClickButton" Content="{Binding ButtonContent}" .../> 

Ensuite, vous pouvez le consommer comme suit:

<my:ButtonTextBox ButtonContent="Some text" .../> 

Si vous voulez être en mesure de le faire:

<my:ButtonTextBox ...>Some text</my:ButtonTextBox> 

vous devez spécifier le ContentPropertyAttribute sur votre UserControl:

[ContentProperty("ButtonContent")] 
public partial class ButtonTextBox 
+0

merci. il a travaillé après quelques ajouts mineurs (et je pense pour la plupart des triviaux ppl) – David

Questions connexes