【问题标题】:How to link a dependency property to a property of a child control of my UserControl如何将依赖属性链接到我的 UserControl 的子控件的属性
【发布时间】:2014-04-23 15:46:52
【问题描述】:

我有一个UserControl,其中有一个ListBox 和一个TextBox(命名为txt)。我想将TextBox.Text 属性公开为我的控件的依赖属性,并将其命名为Text。我怎么做?在 WinForms 中,我只需向我的控件类添加一个新属性即可:

public string Text
{
    get { return txt.Text; }
    set { txt.Text = value; }
}

但这是 WPF,我希望我的 Text 属性是可绑定的,因此将其添加为依赖属性。

【问题讨论】:

    标签: .net wpf dependency-properties


    【解决方案1】:

    其他任何人都在寻找答案,我发现的唯一方法是反过来解决它,即不要让依赖属性读取子控件的值,而应该让你的子控件读取 UserControl 的依赖项的值财产。这可以通过绑定轻松完成。请按以下步骤操作:

    1. 为您的用户控件命名。我在 XAML 中设置了 Name="ME"。
    2. 将 TextBox 的 Text 属性设置为 Text="{Binding ElementName=ME, Path=Text}"。您也可以通过RelativeSource 执行此操作,在这种情况下您无需执行第 1 步。
    3. 如果您还没有这样做,请将依赖属性 Text 添加到您的 UserControl 的代码中。

    我会在标记这个之前等待更好的答案。

    【讨论】:

      【解决方案2】:

      你要做的第一件事是为你的文本属性创建一个依赖属性(比如这里:Dependeny Properties)。在回调中,您可以设置/获取文本框的文本属性。

      也许创建自定义控件而不是用户控件是一种更简洁/更好的方式。

      【讨论】:

      • 你能举个简单的例子吗?
      猜你喜欢
      • 2013-01-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-19
      • 1970-01-01
      • 2017-12-24
      • 2011-07-29
      相关资源
      最近更新 更多