从一个窗口访问另一个窗口中的变量值
本文关键字:窗口 访问 另一个 变量值 一个 | 更新日期: 2023-09-27 18:27:07
我对C#还比较陌生,我有一个关于如何从一个窗口访问另一个窗口中的变量的问题。我想做这样的事情:
public partial class MainWindow : Window
{
int foo=5;
....
}
在窗口2:
public partial class Window2: Window
{
int bar=foo;
}
我该怎么做?提前感谢。。。
public class WindowBase : Window
{
protected static int foo = 5;
public int Foo
{
get
{
return foo;
}
set
{
foo = value;
}
}
}
public partial class Window1 : WindowBase
{
public Window1()
{
int bar = base.Foo;
}
}
public partial class Window2 : WindowBase
{
public Window2()
{
int bar = base.Foo;
}
}
在一个有固定变量的程序中,上面的答案会很好。但是,如果您想访问在运行时动态更改的变量,最好创建一个单独的类(单独的文件),作为两个窗口类之间的接口。
为了这个例子,我们假设这个"独立"类存储在funkyFolder
中。我们必须初始化这个类中的变量。
/funkyFolder/DataInterface.cs:
namespace fooDemo.funkyFolder
{
public static class DataInterface
{
public static int fooVal = 0;
}
}
现在,在第一个窗口中,您可以动态地更改变量数据Ps:记得添加using fooDemo.funkyFolder
using fooDemo.funkyFolder;
namespace fooDemo
{
public partial class MainWindow : Window
{
private void btnHello_Click(object sender, RoutedEventArgs e)
{
DataInterface.fooVal = 10;
}
}
}
然后,在第二个窗口中,您可以毫无问题地访问该变量。
using fooDemo.funkyFolder;
namespace fooDemo
{
public partial class SecondWindow : Window
{
public CartPage()
{
System.Diagnostics.Debug.WriteLine(DataInterface.fooVal);
}
}
}
您可以将这些变量放入一个静态类:
static class MyVariables
{
public static int foo;
}
在主窗口中,您可以设置此变量的值:
MyVariables.foo = 5;
在Window2中,您可以请求值:
int bar = MyVariables.foo;
首先,您必须使您的变量public
:
public int foo = 5;
为了访问,创建MainWindow
:的实例
MainWindow mw = new MainWindow();
bar = mw.foo;
您可以通过多种方式来实现。不过这取决于你的用法。
您可以从Window2公开属性(假设此窗体由MainWindow调用)。
public partial class Window2: Window
{
public string Name {get; set;}
}
然后在MainWindow中可以设置此属性。
或者您可以创建单个作为数据共享不过,我不建议这样做
或您也可以参考此链接,但假设您刚刚启动C#,我认为它可能有点复杂。