【问题标题】:Object share between more WPF windows更多 WPF 窗口之间的对象共享
【发布时间】:2013-11-29 11:20:30
【问题描述】:

我对 WPF 还很陌生,我需要你的帮助来处理一个在多个 WPF 窗口之间传递的对象。

首先,我的 MainWindow 带有 Button_Click 事件,如下所示:

  private void Button_Click(object sender, RoutedEventArgs e)
        {
            Attribute ChooseYourAttr = new Attribute();
            Application.Current.MainWindow.Close();
            ChooseYourAttr.Show();
            Character Player = new Character(firstTextbox.Text);
        }

然后我的第二个窗口叫做 Attribute 有这样的东西:

 private void attributeTopLabel_Initialized(object sender, EventArgs e)
        {
            String welcomeAttribute = "Ahh. I see! So ";
            attributeTopLabel.Content = welcomeAttribute;
        }

我想要这样的东西:(Player.getName());

 private void attributeTopLabel_Initialized(object sender, EventArgs e)
        {
            String welcomeAttribute = "Ahh. I see! So " + Player.getName();
            attributeTopLabel.Content = welcomeAttribute;
        }

感谢您的回答!

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

    只需在构造函数中传递值:

    private Character player = new Character();
    
    public Attribute(Character player)
    {
        this.player = player;
    }
    
    ...
    
    Character player = new Character(firstTextbox.Text);
    Attribute ChooseYourAttr = new Attribute(player);
    
    ...
    
    private void attributeTopLabel_Initialized(object sender, EventArgs e)
    {
        String welcomeAttribute = "Ahh. I see! So " + player.GetName();
        attributeTopLabel.Content = welcomeAttribute;
    }
    

    【讨论】:

    • 属性是第二个窗口的名称,我想在其中使用我在第一个窗口中创建的对象 Player
    • 是的,我知道,你为什么告诉我这个?你不明白我回答的哪一部分?
    • 现在我明白了,谢谢你的回答!我可以知道是否可以在构造函数中将完整对象作为参数传递吗?可能是的,为什么我不能……
    • 是的,当然,你可以通过构造函数传递任何对象。我更新了我的答案以反映这一点。
    猜你喜欢
    • 2015-03-28
    • 2021-05-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    • 2012-07-22
    • 2011-01-17
    相关资源
    最近更新 更多