2

我需要从不同的类(例如名为 myTextBox 的文本框)访问 XAML 中的控件。这就是我所做的,但出现错误:

   Windows1 w = new Windows1();
   w.myTextBox.text = "Hello!";

但是,我收到一条错误消息:

'设置属性'System.Windows.Controls.ContentControl.Content' 引发异常。

粘性错误指向

<Grid Margin="10">
    <Grid.RowDefinitions> <!-- error points to this line -->
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

请给我一些指导以找出原因或错误。

谢谢,阿米特

4

3 回答 3

1

其他事情正在发生,因为我能够让它在一个简单的应用程序中工作而无需做任何棘手的事情。那么你的场景中还有什么?您的“不同”类是否在后台线程中运行?如果是这样,您可能需要使用调度程序来访问 UI 线程。

于 2012-06-19T00:08:53.230 回答
1

看看这个:https ://github.com/kaisellgren/Git-GUI/blob/master/Libraries/UIHelper.cs

它将在可视树中找到给定项目的子项。

用法:

var recentCommitMessages = UIHelper.FindChild<ComboBox>(this, "RecentCommitMessages");

在这里,它将在所有 ComboBox 元素中搜索一个 ID 为“RecentCommitMessages”的元素

于 2012-06-19T00:29:50.570 回答
0
w.Dispatcher.Invoke(new Action(() => { w.myTextBox.text = "Hello!"; }));
于 2012-06-19T00:04:42.417 回答