C# 使用字符串值按名称访问文本框中的文本

C# 使用字符串值按名称访问文本框中的文本,c#,wpf,C#,Wpf,我是一个WPF noob,从WinForms迁移过来,我试图用字符串按名称访问文本框中的文本,基本上我需要WPF版本的Controls.Find(),但我似乎找不到任何有效的方法。这是我的密码 <TextBox x:Name="amplitude0" HorizontalAlignment="Left" Height="20" TextWrapping="Wrap" VerticalAlignment="Top" Width="100" Canvas.Left="160" Canvas.T

我是一个WPF noob,从WinForms迁移过来,我试图用字符串按名称访问文本框中的文本,基本上我需要WPF版本的Controls.Find(),但我似乎找不到任何有效的方法。这是我的密码

<TextBox x:Name="amplitude0" HorizontalAlignment="Left" Height="20" TextWrapping="Wrap" VerticalAlignment="Top" Width="100" Canvas.Left="160" Canvas.Top="64" />
<TextBox x:Name="amplitude1" HorizontalAlignment="Left" Height="20" TextWrapping="Wrap" VerticalAlignment="Top" Width="100" Canvas.Left="280" Canvas.Top="64" />

…最高达振幅9。和C#

objecttextbox=newtextbox();
对于(int n=0;n而不是

amplitude[n] = textBox.text;
您需要的是
振幅[n]=((文本框)文本框)。Text;

这叫做铸造

但如果您这样做,那么您可能做得不对。我建议您阅读更多关于MVVM设计模式的内容,因为它与Win form非常不同。您现在正在做的事情可以通过绑定轻松、干净地完成

编辑:

并且不需要
object textBox=new textBox();
。您不需要初始化新的文本框。应该类似于

TextBox textbox;
....
textbox = (TextBox) FindName(....);

您的错误是什么?什么不起作用?如果没有更多信息,很难提供帮助。错误出现在“振幅[n]=textBox.text;”行-“对象不包含文本定义,也不包含扩展方法文本”中,其中
振幅[]
已定义?和
FindName()
?明白了,谢谢你的帮助!我还得多读一读,从开始使用新技术到现在已经有一段时间了。我将添加到这个答案中,而不是强制转换,声明行应该是var textbox=new textbox()或textbox textbox=new textbox();除非你有其他理由希望变量成为一个对象。
TextBox textbox;
....
textbox = (TextBox) FindName(....);