我有一个自定义的DepenencyProperty,它决定了UserControl的可见性。它通常绑定到一个布尔值,但是我想在Escape键被击中时将其设置为False。如何更新绑定的自定义依赖项属性的来源?
问题是,我不想覆盖绑定,我想更新绑定源值。我如何在代码背后做到这一点?
例如,与此XAML
<local:MyControl IsVisibile="{Binding IsControlVisible}" />
我想更新的IsControlVisible
假的价值,而不是MyControl.IsVisible
“MyDataItem”类不是静态类,所以我不认为这会起作用。多个ViewModel包含这种类型的控件,每个控件都使用不同的布尔值来确定可见性。 – Rachel 2011-04-07 16:15:41
'MyDataItem'不应该是一个静态类,这只是对你的对象持有属性'IsControlVisible'的强制转换。 – 2011-04-07 16:18:00
@HB我不能这样做,因为我不知道可见性绑定了什么类,甚至是什么布尔属性被调用。 ViewModelA可能包含此UserControl并绑定到属性'ViewModelA.IsControlVisible',而ViewModelB可能绑定到'ViewModelB.CanEdit' – Rachel 2011-04-07 16:24:16