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