gre*_*reg 9 c# wpf datagrid entity-framework mvvm
我正在创建一个应用程序,使用户能够插入,更新和删除已输入的数据,然后在数据网格中显示(CRUD操作).
在我的视图模型中,它包含绑定到xaml的属性(Firstname例如).它还包含导航属性以及验证属性.
[Required(ErrorMessage = "First Name is a required field")]
[RegularExpression(@"^[a-zA-Z''-'\s]{1,20}$", ErrorMessage = "First Name must contain no more then 20 characters and contain no digits.")]
public string FirstName
{
get { return _FirstName; }
set
{
if (_FirstName == value)
return;
_FirstName = value;
OnPropertyChanged("FirstName");
}
}
Run Code Online (Sandbox Code Playgroud)
此外,它包含xaml要执行的命令,它创建CRUD操作的实例;
private void UpdateFormExecute()
{
var org = new OrganisationTypeDetail();
UpdateOrganisationTypeDetail(org);
}
Run Code Online (Sandbox Code Playgroud)
最后,它还包含CRUD操作.例如Insert,Update和Delete.
这引出了我的问题.如果我想实现正确的MVVM方式,那么所有这些代码对于包含的视图模型来说太多了吗?
我是否应该使用该模型并在我的View模型中创建一个集合并将其绑定到我的xaml?这是正确的做法吗?
我应该使用存储库系统进行CRUD操作吗?如果是这样,我如何将数据从文本字段传递到模型以进行更新?
我是WPF,MVVM的新手,如果没有适当的指导,很难适应.
我想说这是实现MVVM的正确方法,但不是实现MVVM的正确方法。
我的意思是没有一种正确的方法来实现这种模式。如果您创建了一个可以绑定到您的视图的 ViewModel,而视图中没有任何额外的逻辑(即代码隐藏),那么您就已经抓住了 MVVM 的精髓。
是否向代码中添加更多模式和结构完全取决于您。如果这是一个简单的应用程序,我会保持图案简洁。继续让您的 ViewModel 直接与存储库对话。在这方面,你当前的代码对我来说看起来很好。
如果这是一个大型应用程序,您可能需要添加更多层,例如服务层、数据访问层。您可能需要考虑依赖注入。
但不要仅仅因为您认为应该采用一种模式,或者添加额外的层。依赖注入听起来很酷,但在很多情况下它比它的价值更麻烦!
| 归档时间: |
|
| 查看次数: |
443 次 |
| 最近记录: |