флажок не устанавливает свойство зависимости - PullRequest
1 голос
/ 20 января 2010

У меня есть это DependencyProperty:

public bool ShowEntireHierarchyEx
{
    get { return (bool)GetValue(ShowEntireHierarchyExProperty); }
    set { SetValue(ShowEntireHierarchyExProperty, value); }
}

public static readonly DependencyProperty ShowEntireHierarchyExProperty =
    DependencyProperty.Register("ShowEntireHierarchyEx", typeof(bool), typeof(CustomizeStatisticsStyleControl), new UIPropertyMetadata(false));

И я связываю его с этим CheckBox в XAML:

<CheckBox Margin="16,5,0,0" x:Name="checkBoxHierarcy"
          IsChecked="{Binding ElementName=customizeStatisticsStyle, Path=ShowEntireHierarchyEx, Mode=TwoWay}">
    S_how entire gate hierarchy
</CheckBox>

Но по какой-то причине CheckBoxне изменяет свойство ShowEntireHierarchy, но если свойство ShowEntireHierarchy изменяется в коде, CheckBox изменяется.Что мне здесь не хватает?

Спасибо!

1 Ответ

1 голос
/ 20 января 2010

Причина, по которой SetValue не вызывается, состоит в том, что привязки свойств зависимостей НЕ проходят через установщик CLR. Связанный DP обновляется «за кулисами» WPF, то есть непосредственно в частном «слоте», управляемом системой DP.

Поэтому возможно, что ваш DP установлен , когда флажок меняется. Точка останова не должна быть затронута. Вам следует беспокоиться, только если у вас есть какая-то другая причина полагать, что DP не обновляется.

Чтобы прервать изменения в связанном DP, добавьте PropertyChangedCallback в метаданные своего свойства и установите точку останова в этом обратном вызове.

...