1

在 WPF 使用IDataErrorInfo和样式中,我想创建表单,在其中我可以在验证数据时为最终用户提供三种不同的状态以使场景更清晰

1)我旁边有文本框我有图标,它为最终用户提供了期望的输入文本框类型 - 带有信息图标的初始状态

2)一旦用户输入数据,它就会验证它并决定它是否有效 - 大多数情况下它会显示十字(X)图标表示无效数据

3)当它正在验证时,UpdateSourceTrigger="PropertyChanged"它会在验证后立即将十字图标变为绿色复选标记

IE

[         ] i (tooltip- Any valid user name )
[Ga       ] X (tooltip- Invalid user name. Must be 5 char long)
[Gaurav   ] * (it will show only correct icon, meaning valid value)

我如何使用IDataErrorInfo和样式来实现这一点,我尝试这样做,但是一旦我的表单被加载,它就会使所有数据无效并在第一时间显示十字图标。我想为三种状态(Initial info, Invalid data, Valid data)显示不同的工具提示和不同的图标

4

2 回答 2

1

IDataErrorInfo 不包含任何表示三种状态的方法。它只知道“错误”和“无错误”。

最好的解决方案可能是通过以下方式规避 IDataErrorInfo 的使用:

  1. 为每个经过验证的字段创建一个属性,为其相关字段提供三态状态。
  2. 将视图中的 ContentControls 绑定到这些三态属性。
  3. 为所有这些新的 ContentControls 设置一个样式。
  4. 使用样式中的触发器为错误状态和有效状态分配 ContentControl.ContentTemplate 属性。对于初始状态,在 Style 本身中使用 Setter 以不显示任何内容。

您可能还必须为每个字段的工具提示文本创建属性。

于 2011-03-15T19:03:46.787 回答
0

你可以在这里找到一个很好的例子WPF Apps With The Model-View-ViewModel Design Pattern

于 2009-07-17T11:28:24.270 回答