1

我有一个需要更改页面上 TextBox 的 .text 的 UserControl。我的问题是我找不到从 UC 的代码隐藏中访问 TextBox 的方法。顺便说一句,我使用的是 Visual C++,而不是 C#。

基本上,UserControl 有一个 TextBox,当其中的文本发生更改时,我需要页面上 TextBox 中的文本进行更改。如果这是有道理的。

我已经尝试将 Page TextBox 绑定到 UserControl TextBox,但我无法让任何一个 TextBox 找到另一个。我已经尝试在 UserControl 中#include Page .h,但这仍然无法让我访问页面上的 TextBox。我还研究了在 UserControl 上使用 Window::Current::Content ,但这似乎也无法让我访问 Page TextBox (除非我误解了它的工作原理)。

如果您需要我的任何代码,请告诉我,但现在它是一个更大项目的一部分,除非我删除一堆东西,否则没有任何意义,但是您将无法复制它并尝试运行所以我试图通过提供尽可能多的细节但保持简单来提出我的问题。我已经在互联网上搜索“XAML 将 TextBox 绑定到 UserControl”,虽然结果有限,但我已经完成了所有这些(我一直试图自己解决这个问题将近一个星期) .

4

1 回答 1

0

首先,我为您准备了三个链接,我真的希望您阅读链接页面。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}}}" />
于 2014-01-22T10:14:27.757 回答