问题标签 [inotifydataerrorinfo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
185 浏览

c# - 基于 WPF C# 中的 INotifyDataErrorInfo 更新 Bool 属性

在我的上一个问题中,我得到了一个解决方案,如何手动检查验证结果https://stackoverflow.com/questions/39031783/screen-validation-with-data-annotations-on-button-click-in-using-inotifydataerro/ 39033124#39033124

我有一个 Model Person,它包含三个属性FirstName(必需)、MiddleName(可选)和LastName(必需)。

现在我稍微改变了我的代码

模型类:人

我的 XAML 是

该属性IsValidObject最初工作正常。如果我更新 and 中的值FirstNameLastName则该属性IsValidObject不会更新 UI 中的结果。

我使用了另一种方法

这里我介绍了一个Method ValidateEmployeeObject(),它返回TRUE/FALSE作为类似于Property IsValidObject。我按照@adminSoftDK 在评论部分的建议将这个方法绑定在CanExecute块中。SaveDataCommand这种方法也失败了......

我如何根据上述验证更新保存按钮以启用。

0 投票
1 回答
502 浏览

c# - 在对象的 ObservableCollection 上实现 INotifyDataErrorInfo

语境

我正在使用 MVVM 和实体框架(数据库优先)开发 WPF 应用程序。我有一个机身对象的 ObservableCollection(通过 CollectionView 查看,以便我可以处理下一个/上一个逻辑)。我有一个文本框,允许编辑当前查看的机身的机身属性之一,我目前正在为此设置验证。我采用的方法是使用WPF 4.5 中所示的示例实现 INotifyDataErrorInfo:使用 INotifyDataErrorInfo 接口验证数据

问题

在该文章的示例中,验证是通过 ViewModel 中定义的单个属性的设置器触发的,如下所示:

问题

如何在我的特定上下文中触发验证?当我使用实体框架(数据库优先)时,我无法在生成的机身模型中摆弄设置器。我看不到如何获得细粒度的访问权限来更改机身对象的 ObservableCollection 中的设置器。我也想不出任何其他可以触发验证的地方。

0 投票
1 回答
480 浏览

wpf - 如何清除由 INofityDataErrorInfo 生成的错误

说,我有一个字段Email,我想RegEx errors在用户输入时显示。但它是一个可选字段,所以如果用户提交表单,这个字段应该清除任何错误,并且null应该发送值。

我已经INofityDataErrorInfo在我的ViewModel.

0 投票
1 回答
88 浏览

c# - 如何使 INotifyDataErrorInfo 错误持续存在直到更正?

我的验证在第一个实例中有效,但是当我从一个选项卡项转到另一个选项卡项并再次返回时,验证就消失了。

我本来希望这种状态一直存在,直到用户在这种情况下输入有效的通过标准。

也许这是预期的行为,我错过了文档中的一些内容。

在我的应用程序中,我有一个MainWindow.xaml和一个MainWindowViewModel.cs作为它的 DataContext,它继承自实现INotifyPropertyChangedINotifyDataErrorInfo的BaseViewModel.cs。然后我创建了一个名为FilePath.cs的自定义ValidationAttribute

MainWindow.xaml 包含一个带有两个选项卡项的选项卡控件。只有一个有一个文本框,我已经对其进行了验证。这在某种意义上是有效的,它会在验证不正确时通知我。在此示例中,文件路径不存在。

主窗口.xaml

主视图模型.cs

文件路径.cs

0 投票
3 回答
440 浏览

c# - 错误消息仅显示错误消息中的第一个字符。INotifyDataErrorInfo WPF

当 TextBox 为空时,我有一个简单的验证来显示错误消息。问题在于消息仅显示消息的第一个字母。

在此处输入图像描述

在文本框样式中:

如果我将错误消息直接设置为 Setter Value,它会毫无问题地显示所有内容。

XAML 代码:

C# 代码

0 投票
2 回答
1177 浏览

c# - 使用 INotifyDataErrorInfo 验证 Mvvm 模型

我的模型实现了INotifyDataErrorInfo接口来验证它的属性,它工作正常,但问题是,属性 HasErrors 默认为 false,所以当我第一次运行我的应用程序并单击保存(表单为空)时,视图会引发 no错误,并保存数据。

这是我的视图模型的片段

你如何在你的应用程序中处理这种情况?

有关更多信息,我创建了这个github 存储库。

0 投票
1 回答
3085 浏览

c# - 如何让 WPF 验证冒泡到父控件?

所以我有一个类似这个简化版本的控件:

我像这样使用它:

问题是因为我没有将模型的属性绑定到 上的某些东西,ImageMapContentField所以Validation.HasError总是ImageMapContentField假的并且永远不会触发。

我得到的是默认的 TextBox 验证。

我真正想要的是ImageMapContentField有一个粉红色的背景。这适用于我直接绑定到某些东西的其他控件,但我无法让它适用于具有ContentPresenter.

我希望我只是错过了一些可以让父母捕获验证的东西。


根据要求,这里是该问题的一个最小示例:

主窗口.xaml

CustomTextField.xaml

CustomTextField.cs

自定义内容控件.xaml

自定义内容控件.cs

我的模型.cs

0 投票
1 回答
543 浏览

c# - 在 WPF 应用程序中实现 IDataErrorInfo 或 INotifyDataErrorInfo 的限制

我正在开发一个 WPF 应用程序(MVVM)。我有一个来自单独程序集的类(Odata V4 Generated Proxy Class)。

现在我需要使用数据注释来装饰该类的属性,以便使用IDataErrorInfoINotifyDataErrorInfo接口验证属性。前任:

问题:

由于此类在单独的程序集中,我无法创建部分类。此类的属性绑定到应用程序的 UI 元素。现在我需要在用户输入数据时验证属性。

我正在努力设计解决方案。任何人都可以帮助我实现这一目标吗?

0 投票
1 回答
1048 浏览

c# - WPF - 使用 Fody Validar 的用户输入验证

在此处输入图像描述

我正在尝试验证用户输入,如上图所示。我正在使用 Fody Validor 库并按照此处的说明进行操作。

我可以看到验证正在进行,但 TextBox 边框没有变成红色。

我已经用 Google 搜索了,但我无法获得这方面的信息。任何人都可以为我提供一个工作代码示例吗?

更新

Fody ValidationTemplate(数据注解验证)

要验证的模型类:

XAML

0 投票
2 回答
1003 浏览

c# - UWP INotifyDataErrorInfo

UWP平台上的控件是否通过绑定自动支持INotifyDataErrorInfo接口?

在 Silverlight 和 WPF 上,如果我们实现 INotifyDataErrorInfo 接口,大多数控件会在字段出错时自动发出红光并显示错误消息。这是一个很棒的功能,因为它意味着您可以将错误放在模型级别而不是控制级别。

UWP 支持吗?有样品吗?

编辑:似乎这个问题的答案可能是 UWP 中的控件根本不处理 INotifyDataErrorInfo。那么,现在的问题是,如果没有使用该功能,微软团队是否计划在未来实现该功能?微软在这方面是否有任何公告?