无法理解wpf visual studio设置

时间:2016-05-11 15:48:50

标签: c# wpf visual-studio-2010 xaml

我有一个由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 = "";
    }
 }

1 个答案:

答案 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" />