何你在ViewModel之外做WPF MVVM验证?

时间:2016-03-17 21:23:07

标签: wpf validation mvvm

我是WFP的新手,我正在做一个MVVM项目并试图解决问题......我读了很多关于验证但没有找到我想要的东西。 我不想将验证逻辑放在ViewModel或View中。我希望将验证保留在业务逻辑层中,并且只在那里,这是一个单独的项目,可能可以与任何数据源或UI一起使用,因此我不能在其中放置WPF特定的东西。 我想使用FluentValidation,但我不知道如何在我的ViewModel中链接它。 假设我有一个包含一个字段的条目表单,Save按钮从业务逻辑请求Save方法,如果该字段为空且带有相应的消息,业务逻辑将抛出ValidationException("请键入内容& #34)。 如何将其链接到View / ViewModel以将其反映给用户?

感谢任何帮助,对不起,如果问题是愚蠢的,这个WPF很难:)

编辑,回复约翰奥多姆:我已经到了我的ViewModel中我有Save命令的地方

           try
            {
                EditedItem= itemService.PersistItem(EditedItem);

            }
            catch (ValidationException ex)
            {

              foreach (var result in ex.Errors)
                {
                    Console.WriteLine("Property name: " + result.PropertyName);
                    Console.WriteLine("Error: " + result.ErrorMessage);
                    Console.WriteLine("");
                }
            }

我想将CATCH部分中的信息与我的视图相关联,并向用户显示错误信息

1 个答案:

答案 0 :(得分:0)

您可以在UI上拥有单独的标签,最初将其隐藏。绑定在视图模型中是可见的和内容。 只要有异常,就可以看到Label并在Viewmodel中设置其内容。