依赖属性集优先级:CodeBehind与XAML

时间:2010-04-28 13:08:20

标签: wpf xaml binding dependency-properties

当我从代码初始化控件属性时,绑定到XAML上定义的相同属性不起作用。为什么呢?

例如,我在启动时使用以下语句设置控件属性:

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

在xaml上我以这种方式绑定myControl的属性:

 IsEnabled="{Binding Path=IsKeyControlEnabled}"

现在,当属性“IsKeyControlEnabled”更改为false时,myControl保持启用状态(因为它初始化为true值)。

我该怎么办?

1 个答案:

答案 0 :(得分:3)

这是正确的行为 - 它是设计的。显式分配的值会覆盖通过数据绑定获得的值。 WPF绑定消除了显式引用UI对象及其属性的需要。要设置属性的值,只需更改绑定到的值 - 在您的情况下:

IsKeyControlEnabled = DefaultProp.IsEnabled;