我遇到了绑定到自定义类的问题。依赖属性似乎没有从我的viewmodel获得正确的值。这里是我的自定义类:绑定到自定义类上的DependencyProperty
public class DataResource : DependencyObject
{
public static readonly DependencyProperty ContentProperty =
DependencyProperty.Register("Content",
typeof(object),
typeof(DataResource));
public object Content
{
get { return (object)GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
}
而且在我的用户资源,我有:
<UserControl.Resources>
<local:DataResource x:Key="dataResource" Content="{Binding Test}"></data:DataResource>
</UserControl.Resources>
“测试”在我的视图模型是,我可以一个标签绑定到没有问题的属性。在这个实现中,我在这里做错了什么?
更新:如果我从Freezable而不是DependencyObject继承,则可以使用此方法。我不太清楚为什么,希望somone能解释这一点。
如果我改变我的DataResource类从FrameworkElement的延长,我没有背景还是?我可以在我的资源中使用CollectionViewSource,并且绑定工作正常,因为我的UserControl已经有DataContext集。 – dbomb7 2011-12-14 14:36:33
也许这是通过[继承上下文](http://blogs.msdn.com/b/nickkramer/archive/2006/08/18/705116.aspx)工作,但我不确定。但将类型更改为`FrameworkElement`确实不是采取任何方式的正确步骤,在您真正无法绑定到当前DataContext时,应考虑使用另一个源,例如`ElementName`或`Source`并指定路径相对于该来源。 – 2011-12-14 15:07:45