Ali*_*Ali 10 wpf dependency-properties
我创建了一个usercontrol,它有2个依赖项属性.我想将这些依赖项属性绑定到mainViewModel的属性,这样每当用户控件中的某些内容发生更改时,父属性的属性就会更新.
我尝试过,正常绑定但是没有用.如何将用户控件的DP绑定到父级的属性.
我试过这个:UC:
<TextBox Name="TextBox" Text="{Binding ElementName=UCName, Path=DP1, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)
主窗口:
<UCName:UCName Width="330" CredentialName="{Binding Path=DP1, Mode=TwoWay}"></UCName:UCName>
Run Code Online (Sandbox Code Playgroud)
谢谢
小智 20
要绑定到父级属性,您应该在Binding中使用RelativeSource.像这样:
<TextBox Name="TextBox" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UCName:UCName}}, Path=DP1, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)
详细信息:https://msdn.microsoft.com/en-us/library/ms743599(v = vs.100).aspx
ps:不要忘记define namespace UCName.
[编辑]将URL更改为.NET 4版本的文档.
像这样的东西:
<MainWindow DataContext="mainViewModel">
<local:TestControl ucDependProp="{Binding viewModelProp}/>
</MainWindow>
className: TestControl.xaml
<UserControl Name="thisControl">
<TextBox Text="{Binding ElementName=thisControl, Path=ucDependProp}/>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
用户控件不应该知道父视图模型.