【问题标题】:How to pass values between two pages in WPF如何在 WPF 中的两个页面之间传递值
【发布时间】:2011-12-15 16:04:52
【问题描述】:

在 WPF 中页面之间传递值的最佳做法是什么?

谢谢

【问题讨论】:

标签: c# wpf c#-4.0


【解决方案1】:

您的固定参考点是 Application 对象。您可以将内容存储在 Properties 集合中:

 string myText = (string)Application.Current.Properties["test"];

或者您可以将任何类型的数据添加到您的派生 App 类。

【讨论】:

  • 这种方法有可能让您的 App 对象成为上帝对象。
  • 应用程序对象始终是上帝对象。没问题,只需添加一个配置属性即可。
【解决方案2】:

示例变量名 = DeptName

在 App.xaml 中声明变量 即

public string DeptName { get; set; }

在您的 page-1 中分配值

(App.Current as App).DeptName = "test";

然后调用 page-2 中的值

 string selected_dept = (App.Current as App).DeptName;

【讨论】:

    【解决方案3】:

    可能通过MVVM architecture 中的模型。

    【讨论】:

    • 但是您将模型存储在哪里?这是个好主意,但只是解决了问题。
    • @Henk,一个简短问题的简短回答。但是设计 MVVM 应用程序是一个大课题,Klaus 在我的回答中提供的链接是一个很好的起点。
    【解决方案4】:

    与 Windows 窗体相同:

    不要只使用全局变量或从另一个页面访问页面的控件。如果您有两个页面需要共享同一个对象,例如Student,在您的页面中有一个类似SetStudent(Student student) 的方法,或者使用一个属性,以便一个页面可以使用该方法传递对象Student。如果需要,您当然也可以使用 Get。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 2016-04-29
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      • 1970-01-01
      相关资源
      最近更新 更多