从ListBox中的UserControl访问TextBox.TEXT



我有一个UserControl,需要更改页面上文本框的.TEXT。我的问题是,我找不到一种从UC的代码访问文本框访问文本框的方法。顺便说一句,我正在使用Visual C ,而不是C#。

基本上,UserControl具有文本框,当它中的文本更改时,我需要页面上的文本框中的文本才能更改。如果这是有道理的。

我尝试将页面文本框绑定到USERCORTROL文本框,但我无法获得任何文本框来找到另一个。我尝试了#include usercontrol中的页面.h,但这仍然不能让我访问页面上的文本框。我还研究了使用window :: current :: usercontrol上的内容,但这似乎也没有让我访问页面文本框(除非我误解了它是如何工作的)。

如果您需要我的任何代码,请告诉我,但是现在它是一个较大项目的一部分,除非我删除一堆东西,否则没有任何意义,但是您将无法复制它并尝试运行它,以便通过给出尽可能多的细节,但要简单地提出问题。我已经搜寻了互联网,以搜索" XAML绑定文本框与UserControl",尽管结果有限,但我已经经历了所有这些(我一直在试图独自一人自己弄清楚这一点已有近一个星期了)。

首先,我有三个链接,我真的希望您阅读链接的页面。MSDN的第一个链接应帮助您开始使用WPF,因为很明显您还不知道如何使用它:

演练:开始WPF

第二和第三个链接来自Stackoverflow帮助中心,因为您也很明显您也没有阅读这些页面,它们将帮助您充分利用本网站(并更快地回答您的问题):

我怎么问一个好问题?
如何创建最小,完整,测试和可读的示例

现在要解决您的问题...您可以将DependencyProperty添加到UserControl中,然后从控件内部和外部绑定到数据。在后面的代码中:

public static readonly DependencyProperty ValueProperty = DependencyProperty.Register(
    "Value", typeof(string), typeof(MainWindow), new UIPropertyMetadata("Some text"));
public string Value
{
    get { return (string)GetValue(ValueProperty); }
    set { SetValue(ValueProperty, value); }
}

XAML 内部 UserControl

<TextBlock Text="{Binding Value, RelativeSource={RelativeSource AncestorType={x:Type 
    YourLocalPrefix:YourControlname}}}" />

XAML 外部 UserControl

<YourLocalPrefix:YourControlname Value="{Binding SomePropertyOutsideControl}}}" />

最新更新