Poseurs de ne pas fonctionner sur les Propriétés de Dépendance?
Juste une petite question, pour clarifier certains doutes. Sont des poseurs de ne pas exécuter lorsqu'un élément est lié à une propriété de dépendance?
public string TextContent
{
get { return (string)GetValue(TextContentProperty); }
set { SetValue(TextContentProperty, value); Debug.WriteLine("Setting value of TextContent: " + value); }
}
public static readonly DependencyProperty TextContentProperty =
DependencyProperty.Register("TextContent", typeof(string), typeof(MarkdownEditor), new UIPropertyMetadata(""));
...
<TextBox Text="{Binding TextContent}" />
Que j'ai remarqué que le dessous de mon setter ne fonctionne pas
Debug.WriteLine("Setting value of TextContent: " + value);
- si vous mettez un point d'arrêt dans la définition, vous pouvez voir où il est.
- Si vous avez besoin d'exécuter du code lorsque la propriété est définie, regardez la CoerceValueCallback ou ValueChangedCallback de la UIMetadata classe.
- double possible de WPF: XAML déclarations de propriété n'étant pas définie par les Setters?
Vous devez vous connecter pour publier un commentaire.
WPF moteur de liaison des appels
GetValue
etSetValue
directement (sans passer par la propriété setters et getters). Vous avez besoin de la propriété d'être là, de sorte qu'il peut être pris en charge dans le balisage XAML (et compiler correctement).Pour créer une DependencyProperty, ajouter un champ statique de type DepdencyProperty à votre type et appel DependencyProperty.Register() pour créer une instance d'une propriété de dépendance. Le nom de la DependendyProperty doit toujours finir avec ...de la Propriété. C'est une convention de nommage dans WPF.
Pour le rendre accessible en tant que normale .NETS de la propriété, vous devez ajouter un wrapper de propriété. Ce wrapper n'est rien d'autre qu'à l'interne obtenir et régler la valeur à l'aide de la GetValue() et SetValue() les Méthodes héritées de DependencyObject et en passant le DependencyProperty en tant que clé.
Ne pas ajouter de la logique de ces propriétés, parce qu'ils ne sont appelés lorsque vous définissez la propriété à partir du code. Si vous définissez la propriété de XAML de la SetValue() la méthode est appelée directement.
Chaque DependencyProperty fournit des rappels de notification de changement, la valeur de la contrainte et de la validation. Ces rappels sont inscrits sur la propriété de dépendance.
source: http://www.wpftutorial.net/DependencyProperties.html