在两个 wpf 表单之间将数据作为字符串传递
Passing data between two wpf forms as strings
正在尝试从主窗体获取数据到窗体2。主窗体有一个文本框
和一个按钮。当按下按钮时,它会打开表单 2,它将在主表单中输入的数据显示为一系列文本块。
但是我无法让数据在表单之间传输。代码如下。
任何人都可以帮助或建议我可以做些什么吗?
WPF 1 主窗体:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btnOpenForm_Click(object sender, RoutedEventArgs e)
{
//btnset: Takes the values contained in the text boxes and updates
//the student class
//properties.
Student.sFname = firstname.Text;
Student.sSname = secondname.Text;
Window1 details = new Window1();
details.Show();
}
WPF 2 代码:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void details_Load(object sender, EventArgs e)
{
Fname.Text = Student.sFname;
Sname.Text = Student.sSname;
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
有很多方法可以在 2 类 之间 "pass data"。最简单的方法是在 Window1 上公开 属性 或方法,然后只设置您需要传递的文本。另一种方法是在 Window1 上创建一个将数据作为参数的构造函数。下面是演示这些方法的代码。
public class Program
{
public static void Main(string[] args)
{
var c1 = new Class1();
c1.DoStuff();
}
}
public class Class1
{
public void DoStuff()
{
var c = new Class2("stuff");
var c2 = new Class2();
c2.AcceptStuff("stuff2");
c.Print();
c2.Print();
c2.MyData = "stuff3";
c2.Print();
}
}
public class Class2
{
private string _myData;
public Class2()
{
}
public Class2(string myData)
{
_myData = myData;
}
public string MyData
{
set { _myData = value;}
}
public void AcceptStuff(string myData)
{
_myData = myData;
}
public void Print()
{
Console.WriteLine(_myData);
}
}
打印
stuff
stuff2
stuff3
我假设您在 MainWindow 中有一个 class,例如:
`Public class Student
{
public static string sFname;
public static string sSname;
}`
当您单击打开按钮时,您正在为这些变量赋值,但如果您想在另一个 window 中访问它们,请提及 window 名称,然后提及 class 名称。
检查此代码是否有效?
`public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void details_Load(object sender, EventArgs e)
{
Fname.Text = MainWindow.Student.sFname;
Sname.Text = Mainwindow.Student.sSname;
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}`
正在尝试从主窗体获取数据到窗体2。主窗体有一个文本框 和一个按钮。当按下按钮时,它会打开表单 2,它将在主表单中输入的数据显示为一系列文本块。
但是我无法让数据在表单之间传输。代码如下。 任何人都可以帮助或建议我可以做些什么吗?
WPF 1 主窗体:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void btnOpenForm_Click(object sender, RoutedEventArgs e)
{
//btnset: Takes the values contained in the text boxes and updates
//the student class
//properties.
Student.sFname = firstname.Text;
Student.sSname = secondname.Text;
Window1 details = new Window1();
details.Show();
}
WPF 2 代码:
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void details_Load(object sender, EventArgs e)
{
Fname.Text = Student.sFname;
Sname.Text = Student.sSname;
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
有很多方法可以在 2 类 之间 "pass data"。最简单的方法是在 Window1 上公开 属性 或方法,然后只设置您需要传递的文本。另一种方法是在 Window1 上创建一个将数据作为参数的构造函数。下面是演示这些方法的代码。
public class Program
{
public static void Main(string[] args)
{
var c1 = new Class1();
c1.DoStuff();
}
}
public class Class1
{
public void DoStuff()
{
var c = new Class2("stuff");
var c2 = new Class2();
c2.AcceptStuff("stuff2");
c.Print();
c2.Print();
c2.MyData = "stuff3";
c2.Print();
}
}
public class Class2
{
private string _myData;
public Class2()
{
}
public Class2(string myData)
{
_myData = myData;
}
public string MyData
{
set { _myData = value;}
}
public void AcceptStuff(string myData)
{
_myData = myData;
}
public void Print()
{
Console.WriteLine(_myData);
}
}
打印
stuff
stuff2
stuff3
我假设您在 MainWindow 中有一个 class,例如:
`Public class Student
{
public static string sFname;
public static string sSname;
}`
当您单击打开按钮时,您正在为这些变量赋值,但如果您想在另一个 window 中访问它们,请提及 window 名称,然后提及 class 名称。 检查此代码是否有效?
`public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
private void details_Load(object sender, EventArgs e)
{
Fname.Text = MainWindow.Student.sFname;
Sname.Text = Mainwindow.Student.sSname;
}
private void Close_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}`