使用DXValidationProvider根据值集合验证值

时间:2015-12-30 11:24:52

标签: c# validation devexpress devexpress-windows-ui

我想使用Item检查TextEdit中的Item名称是否唯一。我收集了class Item { public string Name {get;set;} // ... } 个可用对象。

Item类的伪代码:

ConditionValidationRule

首先我创建List<Item> MyItems; // .... MyItems is filled somewhere there. Its size is >0 for sure (checked with debugger). // Binding works for sure too. ConditionValidationRule uniqueItemNameRule = new ConditionValidationRule(); uniqueItemNameRule.CaseSensitive = false; uniqueItemNameRule.ConditionOperator = ConditionOperator.NotAnyOf; uniqueItemNameRule.ErrorText = "Name must be unique"; uniqueItemNameRule.ErrorType = ErrorType.Critical; uniqueItemNameRule.Value1 = MyItems.Select(x => x.Name).ToList(); validationProvider.SetValidationRule(teName, uniqueItemNameRule);

choco install

但是,当我设置的Item的名称不是唯一的时,无论如何验证都会通过。我没有忘记执行验证,因为其他规则按预期工作。 DevExpress缺乏验证规则的文档,因此无法在那里阅读。

1 个答案:

答案 0 :(得分:1)

对于ConditionOperator.NotAnyOf,您必须使用ConditionValidationRule.Values属性而不是ConditionValidationRule.Value1属性 这是一个例子:

uniqueItemNameRule.Values.AddRange(MyItems.Select(x => x.Name).ToList());