至于我用MVVM开发WPF应用程序,我从不通过viewmodel的公共属性公开模型.无论如何,在我刚刚来到Silverlight和WCF RIA的世界之后,我找到了实现数据验证的新方法,这就是必需属性所说的.(还有其他属性)
这次不是在viewmodel中创建验证逻辑,而是在模型本身内部几乎可以做验证逻辑.
public class TestUserPM {
[Key]
public int ID { get; set; }
[Required]
public string FirstName { get; set; }
[Required]
public string Email { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
之后,我在ViewModel中需要的只是公开TestUserPM类型的公共属性,并让View绑定到模型.
我认为这不是优雅的解决方案,但它可以工作,它不需要在viewmodel属性中创建繁琐的验证.
这种方法有任何缺点吗?
更新1
我刚刚找到了1个下方,可能是它有解决方案.我想绑定Button的Command,例如,按钮保存到ViewModel中的Command,但是当且仅当所有信息都有效时,此按钮才能执行.从我与WPF MVVM我已经助手类,我会打电话的经历OnCanExecuteChanged()里面public string this[string columnName]的IDataErrorInfo.
我该如何处理这种要求?
Edu*_*eni 10
我一直通过ViewModel公开Model,只是为了保持简单并且不重复自己(DRY).
唯一要避免在模型中添加属性以适应UI的方法(如Benjamin所说)是将模型保持为viewModel的属性,因此您可以向viewModel添加属性,而不会弄乱模型.
ie:ViewModel是DataContext,它有一个返回模型的Model属性
<TextBlock Text={Binding Path=Model.Name} />
<TextBlock Text={Binding Path=Model.Address} />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1924 次 |
| 最近记录: |