自定义控件上的DataBinding不起作用

时间:2012-08-03 15:24:11

标签: wpf data-binding mvvm custom-controls

我确定我做错了什么。

某些上下文:WPF应用程序,MVVM,实体框架等

在我的ViewModel窗口中,我有两个属性:MemberCountEventCount。两者都是int

在我看来,我有一个自定义控件的5个实例。此自定义控件具有三个依赖项属性:ImageDataButtonTextButtonSubText。全部都是string

我想要做的是绑定控件,使MemberCount绑定到一个控件上的ButtonText属性,EventCount绑定到ButtonText另一个控制的财产。

所以我做了一些事情:

<control:MyControl ... ButtonText="{Binding MemberCount, Mode=OneWay}" ButtonSubText="Members"  Background="{DynamicResource MetroRed}" />

我的窗口的DataContext设置为正确的ViewModel。

无论我尝试什么,我都无法将成员数量或事件数量显示在控件上。我在输出窗口中收到错误:

    System.Windows.Data Error: 40 : BindingExpression path error: 'MemberCount' property
 not found on 'object' ''MyControl' (Name='button')'. BindingExpression:Path=MemberCount;
 DataItem='MyControl' (Name='button'); target element is 'MyControl' (Name='button');
 target property is 'ButtonText' (type 'String')

我已经习惯了WPF中的DataBinding,但对于我的生活,我无法理解这一点。

如果能够将我的视图模型中的属性绑定到自定义控件上的属性,我需要做什么?

1 个答案:

答案 0 :(得分:0)

我认为问题是你的usercontrol中的datacontext或绑定。你应该发布你的usercontrol代码。

<MyUserControl x:Name="uc">
  <TextBlock Text="{Binding ElementName=uc,Path=ButtonText}/>
</MyUserControl>

检查我的回答here,也有类似的问题。