当我从代码初始化控件属性时,绑定到XAML上定义的相同属性不起作用。为什么呢?
例如,我在启动时使用以下语句设置控件属性:
myControl.SetValue(UIElement.VisibilityProperty, DefaultProp.Visibility);
myControl.SetValue(UIElement.IsEnabledProperty, DefaultProp.IsEnabled);
在xaml上我以这种方式绑定myControl的属性:
IsEnabled="{Binding Path=IsKeyControlEnabled}"
现在,当属性“IsKeyControlEnabled”更改为false时,myControl保持启用状态(因为它初始化为true值)。
我该怎么办?
答案 0 :(得分:3)
这是正确的行为 - 它是设计的。显式分配的值会覆盖通过数据绑定获得的值。 WPF绑定消除了显式引用UI对象及其属性的需要。要设置属性的值,只需更改绑定到的值 - 在您的情况下:
IsKeyControlEnabled = DefaultProp.IsEnabled;