c# – WPF MVVM怀疑

c# – WPF MVVM怀疑,第1张

概述你好StackOverflow用户(或Stackoverflowers?): 我正在通过编写WPF来学习.我阅读了几篇文章/看过几个截屏视频,并且来自WEB开发背景,我启动了VS2010并开始做一个示例应用程序,这将帮助我学习基础知识. 我也读了一些关于MVVM的内容,并开始使用它.我设置我的解决方案使用WPF 4.0,ActiveRecord 2.1和SQLite,一切都很顺利.但我还是有些疑惑 你好StackOverflow用户(或Stackoverflowers?):

我正在通过编写WPF来学习.我阅读了几篇文章/看过几个截屏视频,并且来自WEB开发背景,我启动了VS2010并开始做一个示例应用程序,这将帮助我学习基础知识.

我也读了一些关于MVVM的内容,并开始使用它.我设置我的解决方案使用WPF 4.0,ActiveRecord 2.1和sqlite,一切都很顺利.但我还是有些疑惑:

>我创建了一个MainWindowviewmodel,并使用here中的RelayCommand类来…中继命令.我是否通过从MainWindow使用MenuItem将其命令绑定到此viewmodel的属性来破坏任何准则?
>这个动作我将MenuItem命令绑定到将要实例化一个新的viewmodel和一个新的VIEw,并显示它.再一次,在MVVM上下文中可以吗?
>我的MainWindow将是一种“仪表板”,我将在此仪表板上附加多个型号.我应该将所有这些模型包装在单个视图模型中吗?

像这样的东西:

public class MainWindowviewmodel {    private ObservableCollection<Order> openorders;    private Address deliveryAddress;    private Order newOrder;    /* Wrappers for the Openorders Collection */    /* Wrappers for Delivery Address */    /* Wrappers for New Order */    /* Command Bindings */}

TIA!

解决方法

I created a MainWindowviewmodel,and am using the RelayCommand class from here to… relay the command. Am I breaking any guIDelines by having a MenuItem from the MainWindow to have its command bound to a property of this viewmodel?

不,你没有违反任何准则.将MenuItem绑定到MainWindowviewmodel的命令是完全合适的(无论如何你还会把这个命令放在哪里?)

This action I’m binding the MenuItem command to is going to instantiate a new viewmodel and a new VIEw,and show it. Again,is that ok in the MVVM context?

当然,创建一个新的viewmodel是完美的.至于创建一个新视图,它取决于你如何创建它……你当然不应该从viewmodel显式地实例化一个视图,因为它会引入VM对视图的依赖.

My MainWindow will be a kind of “dashboard”,and I will have more than one model attached to this dashboard. Should I just wrap all those models in a single vIEw model?

这取决于你的意思“换行”…你的MainWindowviewmodel可以通过属性公开其他viewmodel,这些VM将显示在视图的不同部分.如果这就是你的意思,是的,你应该把它们包起来.

总结

以上是内存溢出为你收集整理的c# – WPF MVVM怀疑全部内容,希望文章能够帮你解决c# – WPF MVVM怀疑所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1263474.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存