我有一个带有DependencyProperty的UserControl。我使用数据绑定表达式在主机窗口中设置了它的值。但是,它不能按预期工作。无法绑定数据绑定依赖项属性
片段从用户控件的代码隐藏:
public class ViewBase : UserControl
{
public static readonly DependencyProperty ViewModelProperty
= DependencyProperty.Register(
"ViewModel", typeof(ViewModelBase), typeof(ViewBase));
public ViewModelBase ViewModel
{
get { return GetValue(ViewModelProperty) as ViewModelBase; }
set
{
SetValue(ViewModelProperty, value);
}
}
}
而且从XAML(注:CasingListView从ViewBase继承):
<CasingEditor:CasingListView x:Name="_casingListView"
ViewModel="{Binding CasingListViewModel}" />
发生的是什么。具体来说,setter从不被调用,并且该属性保持为空。我知道源属性CasingListViewModel
有一个值,因为我试图将它绑定到另一个属性(DataContext),并且它工作正常。
我认为依赖属性可能是数据绑定。我错了吗?
出于兴趣,为什么不绑定到DataContext? – 2009-10-14 14:20:50
好问题!其实,我们可能可以。但是有一些代码已经期望ViewModel属性被设置。另外,我们在其他用户控件中遇到了与其他属性相同的问题,并想了解如何使其工作。 – 2009-10-14 14:25:46
CasingListViewModel如何声明?它是Window的资源还是属性? – 2009-10-14 14:34:20