我可以在ViewModel中保存多个ViewModel吗?

时间:2011-12-06 09:19:15

标签: mvvm

我想知道您对包含其他ViewModel集合的ViewModel的看法。

例如,如果我有股票价格屏幕。在MainView中,我希望能够选择股票代码。当我按下MainView上的ADD按钮时,它应该在MainView中显示新的股票价格。

我的问题是关于添加按钮应该如何工作?

MainView上的“添加”按钮应该选择哪两个选项:

1)将股票代码(MSFT)传递给 StockPriceService StockPriceService 将检索 StockPrice 对象。然后,我可以将 StockPrice 对象传递到 StockPriceViewModel MainViewModel 将包含 StockPriceViewModel 的集合。

2)将股票代码(MSFT)传递到 StockPriceViewModel 。将实施 StockPriceViewModel 以调用 StockPriceService 并检索 StockPrice 对象。 StockPriceViewModel 对象将包含在 StockPriceViewModel 中。

谢谢,

CA

1 个答案:

答案 0 :(得分:0)

如果Add按钮是MainView的一部分,那么它的事件应该由MainViewModel处理,并通过StockPrice相关代码访问StockPriceViewModel和StockPrice对象的数据。

查看此方法的方法是,您仍然可以显示带有填充数据的StockPriceViewModel,而无需依赖任何其他ViewModel中的任何代码,但在这种情况下,MainViewModel会触发新的创建/实例化StockPriceViewModel等。

所以这意味着主要使用方法2,比如将初始化值传递给StockPriceViewModel构造函数。