J'ai UserControl1 qui est un FormatButtonBar avec des boutons de format et J'ai UserControl2 qui est un DataGrid avec RichTextBoxes en tant qu'éditeurs de cellules.Lier les contrôles gui dans un UserControl à un autre UserControl et ses contrôles contenant dans WPF
Je souhaite réutiliser UserControl1 à différents endroits de mon application.
C'est ce que je veux atteindre avec le code pseudo:
<UserControl1>
<ToggleButton Content="bold" IsChecked="{Binding IsTextBold}" Command="EditingCommands.ToggleBold" CommandTarget="{Binding ElementName=UserControl2.MyRichTextBox}" />
</UserControl1>
<UserControl2>
<DataGrid>
<DataGridCell x:Name="MyRichTextBox" />
</DataGrid>
</UserControl2>
Savez-vous comment la liaison doit ressembler?
votre ContentControl me confond, pourquoi un ContentControl ici ?? J'ai en fait 2 UserControls ... – whiteSox
Peut-être que j'ai mal compris la question, mais n'essayez-vous pas de créer un UserControl que vous pouvez placer des éléments dans votre utilisation de celui-ci? ContentControl est simplement un conteneur léger pouvant être configuré pour contenir un autre UIElement. UserControls a un "bug" (ou au moins un ennui) où si vous définissez leur contenu directement, vous effacez toutes les définitions personnalisées dans le UserControl, en défaisant le point entier du UserControl, vraiment. C'est pourquoi vous devez définir un UIElement DependencyProperty personnalisé et vous lier à lui. La définition de l'attribut [ContentProperty] est juste un raccourci syntaxique. – devios1
Notez également que si vous souhaitez que UserControl prenne en charge les éléments de contenu * multiple *, vous devez déclarer DependencyProperty d'une collection (UIElementCollection) et la définir comme [ContentProperty]. Si ContentProperty n'est pas une collection, vous ne pourrez pas ajouter plusieurs éléments de contenu dans XAML. – devios1