10

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

我试过,正常绑定它,但它没有工作。如何将用户控件的 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>

谢谢

4

2 回答 2

22

要绑定到父属性,您应该在 Binding 中使用 RelativeSource。像这样:

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

详细信息:RelativeSource 标记扩展

注意:不要忘记定义命名空间 UCName。

于 2012-07-18T21:34:22.297 回答
6

像这样的东西:

<MainWindow DataContext="mainViewModel">

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

</MainWindow>


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

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

于 2012-07-18T22:00:41.103 回答