我有一个由visual studio设置的wpf项目。我正在尝试创建MVP类,但我无法访问我创建的这些类中的任何xaml属性(例如textBox1.text或label.Content)
他们给我的文件是MainWindow.xaml.cs,MainWindow.xaml和其他一些文件。我可以在MainWindow.xaml.cs中访问那些xaml属性。但在我的view.cs中显示'textBox' does not exist in the current content
。感谢任何额外的细节和信息
MainWIndow.xaml.cs:
namespace myApp
{
public partial class MainWindow : Window
{
private Model model;
public MainWindow()
{
InitializeComponent();
//initialize the storage
model= new Model();
}
/// <summary>
/// clear the textbox for user input
/// </summary>
private void clearInput()
{
textBox1.Text = ""; //these works fine
textBox2.Text = "";
textBox3.Text = "";
}
[...]
}
view.cs:
namespace myApp
{
public interface IView
{
void clearInput();
}
public class PView: IView
{
public void clearInput()
{
textBox1.Text = ""; //error
textBox2.Text = "";
textBox3.Text = "";
}
}
答案 0 :(得分:1)
您需要在XAML文件中为控件(TextBox等)指定一个名称,例如
<TextBlock Name="textblock1" .....
然后在您的代码文件中,您可以访问textblock1
修改强>
但是,这些控件总是私有的,因此对其他类不可见。要公开数据,您需要尝试这样的事情:
public string TextBlockText
{
get { return textblock1.Text; }
}
然后在你的其他课程中你可以使用
var text = MainWindow.TextBlockText;
<强> EDIT2 强>
或者,您可以像这样公开这些控件
<TextBox x:Name="textBox1" x:FieldModifier="public" />