我想使用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缺乏验证规则的文档,因此无法在那里阅读。
答案 0 :(得分:1)
对于ConditionOperator.NotAnyOf
,您必须使用ConditionValidationRule.Values
属性而不是ConditionValidationRule.Value1
属性
这是一个例子:
uniqueItemNameRule.Values.AddRange(MyItems.Select(x => x.Name).ToList());