我在我的WinRT项目中有一个静态的UserAccount
类。该类包含有关当前登录用户的各种静态属性(如用户名,电子邮件地址,...)。我需要这个信息可以从任何视图使用绑定(例如 - 我想显示个性化的消息"Welcome, {0}"
- 传递用户名 - 在应用程序的一页),但我需要确保,这些条件得到满足:静态属性/ ViewModel(C#,WinRT)
- 以正确MVVM图案方式实现它
- 当用户切换到当应用程序正在运行通设置魅力另一个帐户,结合的字段(如消息等等)应该自动与新更新数据。
我认为这将有可能像全球UserAccountViewModel
创造的东西,这将是具有所需性能的经典视图模型,并会从静态UserAccount
类进行手动更新,但不似乎是最好的解决方案。
你能否想到一个更好的方法来实现这一目标并满足上述两个条件?
任何帮助极大的赞赏。
编辑: 类似的情况又一个类别中发生,我需要 - NetworkStatus - 其中有IsInternetAvailable知道应用是否被连接,但我需要使用这个布尔绑定到不同的按钮的IsEnabled属性中的应用。
是否可用于Windows RT XAML {x:Static namespace:Class.Property}?如果没有一种方法可以使用依赖注入容器并将您的用户帐户信息注册为单个实例类型。因此,您的ViewModel可以将UserAccount注入到构造函数中。你在使用DI吗? – Alan 2013-04-29 14:38:34
我认为x:Static不可用。我想到了DI方法,但是这使得从代码隐藏(例如 - 其中一个属性是AccessToken,我用它从Web服务加载数据)导致了对UserAccount类属性的一些不友好的访问 - 现在我将不得不做一些像ViewModelLocator.UserAccount.AccessToken(本质上更麻烦的代码))还是有另一种方法来实现这一点? – 2013-04-29 17:52:17
为什么你需要从后面的代码访问视图模型属性?这是属于视图模型的内容。 – 2013-04-30 04:19:55