Le projet sur lequel je travaille actuellement est une application de type éditeur de texte. Je me demande comment je peux gérer les options de vue personnalisées. par exemple. famille de police, taille, gras, couleurs pour mon TextBox
. Mon onglet de l'éditeur est un EditorTabViewModel
dans la vue est un contrôle utilisateur personnalisé MarkdownEditor
. C'est fondamentalement une zone de texte avec quelques boutons pour gras/italique etc. Je me demande comment puis-je en quelque sorte définir les options pour le custom/usercontrol de OptionsView
de mon application?WPF/C#/MVVM: besoin d'aide pour implémenter des options d'affichage personnalisées pour le contrôle utilisateur
la façon dont je suis rendu le rédacteur en chef est
<Window.Resources>
<DataTemplate DataType="{x:Type vm:EditorTabViewModel}">
<me:MarkdownEditor />
</DataTemplate>
</Window.Resources>
MarkdownEditor
est un contrôle utilisateur qui expose les propriétés d'affichage publics pour définir les polices, les couleurs, etc.
MISE À JOUR: aussi car il peut y avoir beaucoup MarkdownEditor
s dans l'application, je veux que les options soient globales
+1 FWIW, je suis un puriste et suggérerais la deuxième approche avec quelques 'IValueConverters' :) –
@Steve Greatrex: Oui, c'est une bonne idée ... vous pouvez toujours lier Voir les propriétés à votre coutume enums utilisant un IValueConverter pour mapper l'énumération à la construction View appropriée. S'il y a beaucoup de propriétés à lier, alors il faudra beaucoup de convertisseurs de valeurs pour faire le mapping. C'est là qu'une propriété attachée statique peut mapper un objet 'TextFormatting' à un' UIElement'. De là, vous pouvez créer un seul 'IValueConverter' pour faire le travail. Cela élimine le comportement lié (mais pas la propriété jointe) que j'ai mentionné. –
@Steve Greatrex, mais qu'est-ce que 'IValueConverters' pour dans ce cas? –