Приоритет набора свойств зависимости: CodeBehind и XAML - PullRequest
2 голосов
/ 28 апреля 2010

Когда я инициализирую свойство элемента управления из кода, привязка к тому же свойству, определенному в XAML, не работает. Почему?

Например, я устанавливаю свойства элемента управления при запуске с помощью следующих операторов:

myControl.SetValue(UIElement.VisibilityProperty, DefaultProp.Visibility);
myControl.SetValue(UIElement.IsEnabledProperty, DefaultProp.IsEnabled);

и на xaml я связываю свойство myControl следующим образом:

 IsEnabled="{Binding Path=IsKeyControlEnabled}"

теперь, когда свойство IsKeyControlEnabled изменяется на false, myControl остается включенным (поскольку он инициализируется с истинным значением).

Как я могу это сделать?

1 Ответ

3 голосов
/ 28 апреля 2010

Это правильное поведение - оно разработано. Явно присвоенные значения переопределяют значения, полученные посредством привязок данных. Привязки WPF устраняют необходимость явной ссылки на объекты пользовательского интерфейса и их свойства. Чтобы установить значение свойства, просто измените значение, к которому оно привязано - в вашем случае:

IsKeyControlEnabled = DefaultProp.IsEnabled;
...