【问题标题】:Pass through wpf dependency property of usercontrol to child control将usercontrol的wpf依赖属性传递给子控件
【发布时间】:2013-01-14 09:38:18
【问题描述】:

我有一个自定义 MyControl :具有依赖属性的 UserControl

string Text

在 XAML 的 MyControl 中,我有一个 TextBox。

我希望将MyControl 的Text 依赖属性 绑定到TextBox 的Text 依赖属性

最好的方法是什么?我可以声明的依赖属性 MyControl 传递给子依赖属性?

【问题讨论】:

    标签: .net wpf binding dependency-properties


    【解决方案1】:

    最简单的方法是将x:Name="root" 属性分配给MyControl.xaml 文件的根,然后为TextBox 使用这样的绑定:

    <TextBox Text="{Binding Text, ElementName=root}" />
    

    (您可以为root指定自己的名字。)

    【讨论】:

    • 但这是否会在用户控件上隐式创建 DP。我仍然需要在后面的代码中声明它吗?
    • 你必须在用户控件上声明你的属性;不会因为您绑定到某个属性而隐式创建它。您的问题表明您已经有一个具有该依赖项属性的自定义控件,并请求帮助绑定到它;如果不是这种情况,那么您可能应该改写您的问题。
    • 不,我只是好奇。 WPF中有很多黑暗的角落。如果可能的话,我不会感到惊讶:)
    • 这行得通,但是当你想在绑定中指定一个StringFormat,例如:UnitlessValue="{Binding NumberAsPercent, StringFormat=P1},有没有人找到办法做到这一点?跨度>
    • @GetFuzzy:你试过{Binding NumberAsPercent, ElementName=root, StringFormat=P1}吗?
    【解决方案2】:

    我的回答here 详细说明了如何实现这一点的一个很好的例子。您实际上将控件绑定到视图模型上的属性,子视图模型具有启用对子控件的绑定并将值推送到子视图模型的依赖项属性。该示例在 Silverlight 中,但 WPF 的实现是相同的。

    【讨论】:

      猜你喜欢
      • 2014-03-01
      • 2014-08-31
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      相关资源
      最近更新 更多