如何使用C#获取xaml元素?

如何使用C#获取xaml元素?,c#,windows-phone-7,xaml,C#,Windows Phone 7,Xaml,我有一个xaml页面samplePage.xaml及其相应的.cs文件samplePage.xaml.cs。在此页面中有一个文本框textBox1。 现在,我创建页面的一个实例: PhoneApp1.samplePage s = new PhoneApp1.samplePage(); 然后,我想通过调用以下命令来设置文本框中的值: s.textBox1.Text = "whatever" 但结果是有一条错误消息说 “PhoneApp1.samplePage”不包含“textBox1”的定义

我有一个xaml页面
samplePage.xaml
及其相应的.cs文件
samplePage.xaml.cs
。在此页面中有一个文本框
textBox1
。 现在,我创建页面的一个实例:

PhoneApp1.samplePage s = new PhoneApp1.samplePage();
然后,我想通过调用以下命令来设置文本框中的值:

s.textBox1.Text = "whatever"
但结果是有一条错误消息说

“PhoneApp1.samplePage”不包含“textBox1”的定义 并且没有扩展方法“textBox1”接受类型为的第一个参数 找不到PhoneApp1.samplePage(您是否缺少使用 指令或组件引用?)


我想知道如何使用C代码获取xaml元素?

好问题,您需要使用XamlReader.Load在运行时加载页面/控件,然后才能访问其中的控件:


您的文本框可能是私有的或受保护的。在页面中添加包装以公开文本框,如:

public TextBox TextBox1
{
    get
    {
        return this.textBox1;
    }
}
(注意情况)


然后只需在任意位置使用该属性:
s.TextBox1.Text=“whatever”

这真的很奇怪,我编写了一个简短的测试,从C#访问命名的xaml元素在这里非常有效。你能发布更多的代码吗,例如文本框的xaml和C#调用的位置?我认为这种方法不适用于NavigationService。实际上,我用另一种方法解决了它,而这确实是一个很好的解决方案。谢谢