在Silverlight 3.0中使用.NET RIA Services和MVVM时,RIA Services的Metadata类型和MVVM模式的viewmodel之间存在差异吗?这些是相同的还是应该分开?
元数据类型是部分Entity类的密封内部类.那里似乎没有适当的分离,但元数据类型也可以使用Validation的属性进行修饰,使其看起来像viewmodel.
我已经四处寻找,但我没有看到任何有关这方面的细节.
解决方法
同意ChuckJ – 通常DomainContext构成视图模型的一部分.例如,假设我有一个允许搜索产品目录的搜索页面.这是我如何构建事物:
在服务器上:
class Catalog : DomainService { IQueryable<Product> GetProducts(string keyword) { ... } }
生成的DomainContext:
class Catalog : DomainContext { EntityList<Product> Products { get; } void LoadProducts(string keyword); }
我会写的视图模型:
class Searchviewmodel { Catalog _catalog = new Catalog(); public IEnumerable<Product> Results { get { return _catalog.Products; } } public void Search(string keyword) { _catalog.Products.Clear(); _catalog.LoadProducts(keyword); } }
最后在我的xaml中,我将UserControl的DataContext设置为Searchviewmodel的一个实例,并将ItemsControl绑定到Results属性.我将使用您选择的viewmodel模式将按钮单击绑定到Search(这实际上是Searchviewmodel公开的命令).我个人喜欢我使用Silverlight.FX的东西,如:
<Button Content="Search" fxui:Interaction.ClickAction="$model.Search(keywordTextBox.Text)" />
正如Chuck所提到的,我的视图模型中可能确实有其他状态,例如,可能与我的xaml中的ListBox的SelectedItem双向绑定的SelectedProduct,然后将相同的SelectedProduct绑定为DataForm的DataContext以显示所选产品的详细信息.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。