【发布时间】:2010-10-30 03:08:27
【问题描述】:
据我了解,ViewModel 应该从视图中抽象模型并添加额外的逻辑来处理演示内容。
我的问题是:
我将如何创建一个假设可以同时处理用户输入的订单和详细信息的数据表单。 它应该显示用于输入订单的字段以及用于 1 个详细信息的字段。
我的模型会有一个包含 OrderDetails 列表的订单对象。
OrderEntryForm 的 ViewModel 看起来如何?
我是否有一个 OrderViewModel 和一个 OrderDetailViewModel 以及我的 我的 OrderEntryForm 将包含 OrderViewModel 的属性和 OrderDetailViewModel 的属性? (嵌套 ViewModel?) 在这种情况下如何处理验证?由于验证应该接近模型? 尤其是当我使用 RIA-Service 时... 放在 ViewModel 中不是更有意义吗?
您将模型从 ViewModel 抽象到多远? 示例:
private DateTime _OrderDate;
public DateTime OrderDate
{
get { return _OrderDate; }
set
{
if (_OrderDate != value)
{
_OrderDate = value;
OnPropertyChanged("OrderDate");
}
}
}
这意味着我必须将 ViewModel-Property 映射到 Model-Properties。此处无法利用模型中的 Validation-Logic...
这个例子:
public DateTime OrderDate
{
get { return Model.OrderDate; }
set
{
if (Model.OrderDate != value)
{
Model.OrderDate = value;
OnPropertyChanged("OrderDate");
}
}
}
需要传入一个模型。既可以访问模型的验证逻辑又可以耦合...
网络上的大多数示例显示使用 ViewModel 的数据表单只是表的表示而不是真正的抽象......
我知道并且我看到了这个
stackoverflow.com/questions/744474/combining-net-ria-services-and-mvvm-in-silverlight-3-0
我还阅读了关于此的 nikhils 博客文章,但这也仅处理来自数据库表的 Products 直接映射... =(
我知道很多问题...
你对这个话题有什么看法? 您将如何处理复杂的数据表单?
【问题讨论】:
标签: silverlight mvvm