我正在构建一个工具,其目标是基于一些参数下载文件.
第一步是设置(或检索)这些参数.
FileDownloadsManager检索不同的参数集(比如说通过配置文件):它确切地知道要下载正确文件的参数.
那些参数存储在一个类中,我有一个这个类的实例列表.
这意味着我可以使用多个可能的参数集下载我的文件.
在这些ParameterSets周围,我构建了ParametersSetsViewModels,以便我可以在列表中显示它们,并添加一些View-Only属性.在内部,ParametersSetsViewModels具有对底层ParametersSets的引用,这些ParametersSets用作View Model成员的源.
现在,当我选择我的参数集时,我希望下载相关文件.
这应该是谁的责任?
我有这种感觉,如果ViewModel过于活跃,通过一个返回下载文件的方法,这将违背MVVM模式; 你对此有什么看法 ?
奖励:使用BackgroundWorkers或WebClient的异步方法在后台下载应该是可行的.
Gon*_*ing 20
在我看来,每个人都认为MVVM没有控制器,因为他们忽略了C. MVVM实际上是MVC的一种变体,"只是添加了ViewModels".
也许它应该被称为MVCVM而不是?
ViewModels仅用于从视图中卸载"GUI"代码并包含任何用于绑定的数据.ViewModels不应该进行任何处理.一个很好的测试是,您的ViewModel可以通过自动化单元测试进行测试,并且不依赖于数据源等.他们应该不知道数据实际来自哪里(或者谁在显示它).
虽然可以忽略/避免,但Controller负责决定显示哪些数据模型以及在哪些视图中显示.ViewModel是Models(MVVM中的M)和Views之间的桥梁.这允许更简单的"分离"XAML创作.
在回答您的问题时,处理应由控制器处理.如果需要更新ViewModel以显示忙碌指标等,那么它不是View或Model或ViewModel的责任.
归档时间: |
|
查看次数: |
4417 次 |
最近记录: |