J'ai une propriété attachée personnalisée mais les accesseurs ne sont jamais accédés sur la liaison de données. Ces accesseurs sont-ils destinés à être accédés chaque fois que la propriété attachée change?Obtenir ou définir l'accesseur de la propriété attachée ne se déclenche-t-il pas sur le databind? WPF
public static readonly DependencyProperty CharacterColumnNumberProperty =
DependencyProperty.RegisterAttached("CharacterColumnNumber", typeof(int), typeof(DragCanvas), new UIPropertyMetadata(1));
public static int GetCharacterColumnNumber(UIElement uiElement)
{
if (uiElement != null)
return (int)uiElement.GetValue(CharacterColumnNumberProperty);
else return 0;
}
public static void SetCharacterColumnNumber(UIElement uiElement, int value)
{
if (uiElement != null)
{
uiElement.SetValue(CharacterColumnNumberProperty, value);
DragCanvas.SetLeft(uiElement, value * 10);
}
}
XAML:
<Setter Property="local:DragCanvas.CharacterColumnNumber" Value="{Binding Path=CharacterColumnNumber, Mode=TwoWay}" />
Les liaisons n'accèdent pas aux propriétés: elles utilisent l'objet de dépendance sous-jacent et les structures de liaison pour accéder aux valeurs des propriétés de dépendance. Celui-ci m'a surpris aussi, quand j'ai commencé à déconner avec DP. Il y a beaucoup de choses sous les couvertures dans WPF. – Will
Pourquoi l'infrastructure (ou l'éditeur xaml) nécessite-t-elle que les accesseurs se conforment à la convention de dénomination s'ils ne sont même pas utilisés par le système de propriétés WPF? –