wpf - 使用 MVVM-Light WPF 和 Linq to Entity Framework 进行数据验证

标签 wpf mvvm linq-to-entities mvvm-light

我想我已经阅读了搜索 wpf mvvm-light 数据验证时 google 返回的每篇文章,但我不知道该走哪条路。我知道 josh smith、Karl Shifflett 和 MVVM LIGHT 自己的数据验证演示技术。我看到的是大多数验证都要求我在我的 View 模型中完全“重新抽象”我的模型。这意味着我必须在我的 View 模型中为我想要验证的模型的每个属性创建一个属性(在某些情况下,将所有这些转换为字符串值以进行绑定(bind)/验证)。当我只想根据需要标记大多数字段时,这似乎很多或冗余。

我正在为来自 SQL Server 数据库的模型类使用 LINQ to entity framework(带 self 跟踪)。因此,我更愿意将我的业务数据验证/规则保留在我的 View 模型中。我编写了一个简单的服务接口(interface)来从模型中获取数据并将其传递到我的 View 模型。

我能找到的大多数例子都可以追溯到 2008 年(即 josh smith)。这些技术是否仍然有效,或者是否有更多关于使用 .NET 4.5 等进行 mvvm 数据验证的最新最佳实践。

所以我想问:

1) 你建议我使用什么方法 2) 什么方法在 LINQ to EF with MVVM-Light Environment 中最有效。 3)编辑:我想在用户输入数据时向他们提供反馈,而不仅仅是在他们提交表单时

谢谢

最佳答案

我这样做(不一定正确)的方法是在 ViewModel(CRUD 操作通常发生的地方)中进行验证,然后如果存在验证错误,则中止保存/添加任何数据并使用 Messenger .Default.Send 将自定义消息类型发送到我的 View 。然后我通过对话框或其他方式提醒用户。

我过去曾试验过 Binding ValidationRules,但发现迄今为止最可靠和一致的方法是简单的 if 语句。

关于wpf - 使用 MVVM-Light WPF 和 Linq to Entity Framework 进行数据验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14412094/

相关文章:

c# - C#/WPF 中相邻形状的并集

c# - 在 View 模型之间通信/传递值的正确方法?

c# - Entity Framework 使用外键从表中检索数据

sql - 如何使用 LINQ 在多个 OR 内创建 SQL 嵌套 AND

wpf - 性能UserControl/CustomControl

wpf - 创建一个 WPF 文本框控件,如 Outlook 电子邮件收件人文本框

wpf - 实例化 ViewModel(需要简单的帮助)

c# - ViewModel 和 Command 之间的通信

wpf - 使用带有 Prism 的 MVVM 在 View 之间切换

c# - 如何在 LINQ to Entities 中为 Entity Framework 对象使用谓词