2010-12-14 17 views
1

Dans WPF, certaines propriétés des contrôles sont des propriétés de dépendance, d'autres sont des propriétés normales. Par exemple TextBox.SelectedText est une propriété normale et non une propriété de dépendance. J'utilise MVVM et il m'arrive souvent de vouloir lier à certaines propriétés, mais je ne peux pas, car c'est une propriété normale. Est-ce que quelqu'un peut m'expliquer, quelle est la logique derrière la décision si une propriété est normale ou une propriété de dépendance.Propriétés de dépendance sur les contrôles

De même, puis-je contourner ce problème et, en quelque sorte, me lier aux propriétés normales comme s'il s'agissait de propriétés de dépendance?

Répondre

1
+0

merci pour les liens biju! – thumbmunkeys

1

Vous pouvez lier aux propriétés normales, mais si votre propriété change, votre liaison ne sera pas notifiée. Cependant, vous pouvez implémenter INotifyPropertyChanged dans vos classes et la liaison mettra automatiquement à jour votre contrôle.

+0

mais pourquoi ai-je cette erreur alors: Une 'liaison' ne peut pas être définie sur la propriété 'CaretIndex' de type 'TextBox'. Une 'liaison' ne peut être définie que sur un DependencyProperty d'un DependencyObject. – thumbmunkeys

+0

Cest parce que seule une propriété de dépendance peut être la cible d'une liaison. DependencyProperty est toujours une propriété d'un objet dérivé de la classe DependencyObject. – biju