【问题标题】:WPF bind usercontrol's property to parent's propertyWPF 将用户控件属性绑定到父属性
【发布时间】:2012-07-18 20:58:01
【问题描述】:

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

我试过了,正常绑定,但是没用。如何将用户控件的 DP 绑定到父级的属性。

我试过这个: 加州大学:

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

主窗口:

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

谢谢

【问题讨论】:

    标签: wpf dependency-properties


    【解决方案1】:

    为了绑定到父属性,你应该在你的绑定中使用RelativeSource。像这样:

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

    详情:RelativeSource Markup Extension

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

    【讨论】:

      【解决方案2】:

      类似这样的:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-09-06
        • 1970-01-01
        • 2013-08-29
        相关资源
        最近更新 更多