gpt4 book ai didi

c# - 尝试在 WPF 窗口之间共享对象

转载 作者:行者123 更新时间:2023-11-30 14:53:55 25 4
gpt4 key购买 nike

我在我的 WPF 应用程序的主窗口中实例化一个类,然后在单击事件时将该对象传递给第二个窗口。但是当我尝试运行我传递给 Window_Loaded 方法中的第二个窗口的对象的方法时,我得到了错误:

The name object does not exist in the current context.

这是我的主窗口代码:

public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}


Object objectName;

private void Window_Loaded(object sender, RoutedEventArgs e)
{
objectName = new Object();
objectName.Text = "text";




}
private void MenuItem_Click(object sender, RoutedEventArgs e)
{
Settings settingsWindow = new Settings(objectName);
settingsWindow.Show();
}
}

和设置窗口:

public partial class Settings : Window
{
public Settings(Object object)
{
InitializeComponent();
}

private void SettingsWindow_Loaded(object sender, RoutedEventArgs e)
{
// get text in object
String name = object.Text;
}
}

所以我可以将对象传递给窗口,但如何在新窗口 Window_Loaded 方法中使用它?

最佳答案

您不在设置中实例化对象。

使用:

public partial class  Settings: Window
{
Object _object;

public Settings(Object object)
{
_object = object
InitializeComponent();
}

private void SettingsWindow_Loaded(object sender, RoutedEventArgs e)
{
// get text in object
String name = _object.Text;
}

还有一些离题技巧:

  • 使用 MVVM
  • 不要直接使用对象,而是使用更具体的类类型(创建自己的类)。
  • 将设置重命名为 SettingsWindow,因为很可能您还有一个包含数据的设置类。

关于c# - 尝试在 WPF 窗口之间共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28214646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com