如何将依赖项属性链接到UserControl的子控件的属性

时间:2014-03-18 05:44:24

标签: .net wpf dependency-properties

我有一个UserControl,其中包含ListBoxTextBox(名为txt)。我想将TextBox.Text属性公开为我的控件的依赖属性,并将其命名为Text。我怎么做?在WinForms中,我通过简单地向控件类添加一个新属性来实现这一点:

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

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

2 个答案:

答案 0 :(得分:0)

其他寻找答案的人,我找到的唯一方法是反过来解决它,即不是读取子控件的值的依赖属性,你应该让你的孩子控制读取UserControl的值&# 39; s依赖属性。这可以通过绑定轻松完成。请按照以下步骤操作:

  1. 为UserControl命名。我设置Name =" ME"在XAML。
  2. 将TextBox的Text属性设置为Text="{Binding ElementName=ME, Path=Text}"。您也可以通过RelativeSource执行此操作,在这种情况下,您不需要执行第1步。
  3. 如果您尚未执行此操作,请将依赖项属性Text添加到UserControl的代码中。
  4. 在标记这个之前我会等待更好的答案。

答案 1 :(得分:0)

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

也许它是一种更干净/更好的方式来创建自定义控件而不是用户控件。