2012-07-18 155 views
8

我创建了一个usercontrol,它具有2个依赖属性。我想将这些依赖项属性绑定到mainViewModel的属性,以便每当用户控件中的某些内容发生更改时,父项的属性就会更新。WPF将usercontrol的属性绑定到父级的属性

我尝试过,通常绑定它,但它没有工作。如何将用户控件的DP绑定到父项属性。

我尝试这样做: UC:

<TextBox Name="TextBox" Text="{Binding ElementName=UCName, Path=DP1, Mode=TwoWay}"/> 

主窗口:

<UCName:UCName Width="330" CredentialName="{Binding Path=DP1, Mode=TwoWay}"></UCName:UCName> 

感谢

+0

您能否提供一些代码示例,包括如何绑定到依赖项属性。 – Nathan 2012-07-18 21:04:10

+0

刚刚编辑原帖 – Ali 2012-07-18 21:12:23

回答

18

结合母公司的属性,你应该在你的绑定使用的RelativeSource。就像这样:

<TextBox Name="TextBox" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UCName:UCName}}, Path=DP1, Mode=TwoWay}"/> 

详情:https://msdn.microsoft.com/en-us/library/ms743599(v=vs.100).aspx

PS:不要忘记定义命名空间ucname创建。

[编辑]更改URL到.NET 4版本的文档。

+0

您的链接已过时。 – 2016-03-21 15:10:29

5

事情是这样的:

<MainWindow DataContext="mainViewModel"> 

<local:TestControl ucDependProp="{Binding viewModelProp}/> 

</MainWindow> 


className: TestControl.xaml 
<UserControl Name="thisControl"> 
<TextBox Text="{Binding ElementName=thisControl, Path=ucDependProp}/> 
</UserControl> 

用户控件应该不知道父视图模式。

相关问题