如何使用C#获取xaml元素?
我有一个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”的定义
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。实际上,我用另一种方法解决了它,而这确实是一个很好的解决方案。谢谢