Je travaille sur un ensemble de contrôles possédant un certain nombre de DependencyProperties. Les propriétés sont elles-mêmes DependencyObjects et créées lors de la méthode get des propriétés. Au cours de la méthode Get, ils sont également définis dans le Propertybag à l'aide de la méthode SetValue(), ils sont donc valides dans Xaml et leurs propriétés peuvent être storyboardées sans avoir à être explicitement créées dans l'arbre visuel.PropertyValueEditor et DependencyObject dans Blend 3 - Prise en charge de Silverlight DesignTime
Ces DependencyObjects a toutes ses propriétés DependencyProperties ainsi, pour soutenir DataBinding. Ils sont comme mentionné ci-dessus possible d'utiliser dans Storyboards.
En même temps, je développe le soutien de designtime spécial pour Blend 3 pour ces propriétés et ont créé un InlineEditorTemplate sous la forme d'un contrôle. Je crée le modèle et mettez-le PropertyValueEditor comme ceci:
var vectorEditControl = new FrameworkElementFactory(typeof (VectorEditorControl));
var dataTemplate = new DataTemplate {VisualTree = vectorEditControl};
InlineEditorTemplate = dataTemplate;
Dans le contrôle, je donne les résultats suivants:
<Grid DataContext="{Binding Value}">
<StackPanel Orientation="Horizontal">
<TextBox Text="{Binding Path=X, Mode=TwoWay}"/>
<TextBox Text="{Binding Path=Y, Mode=TwoWay}"/>
<TextBox Text="{Binding Path=Z, Mode=TwoWay}"/>
</StackPanel>
</Grid>
L'éditeur montre et Je peux éditer les données. Et même pendant le débogage, je vois qu'il rétablit réellement les données à DependencyProperties sur les DependencyObjects, mais rien n'arrive au Xaml. Donc les données ne sont en fait pas persistantes dans le Xaml et perdues quand je ferme le fichier Xaml et l'ouvre à nouveau.
Y a-t-il quelque chose que je dois faire spécifiquement pour que je puisse entrer dans le Xaml? J'avais l'impression que cela arriverait automatiquement?
Merci c'est excellent. Maintenant, je n'ai pas besoin de me cogner la tête contre le mur ce soir. –