Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 从列表中调用方法并存储结果_C#_Regex_Wpf_Visual Studio - Fatal编程技术网

C# 从列表中调用方法并存储结果

C# 从列表中调用方法并存储结果,c#,regex,wpf,visual-studio,C#,Regex,Wpf,Visual Studio,比如说,我想创建自己的数据验证系统 List<ValidationRule> list = new List<ValidationRule>(); list.Add(new ValidationRule(sometext, "Method regexTextValidation")); list.Add(new ValidationRule(phonenumeber, "Method regexPhoneValidation")); list.Add(new Valida

比如说,我想创建自己的数据验证系统

List<ValidationRule> list = new List<ValidationRule>();
list.Add(new ValidationRule(sometext, "Method regexTextValidation"));
list.Add(new ValidationRule(phonenumeber, "Method regexPhoneValidation"));
list.Add(new ValidationRule(somedate, "Method regexDateValidation"));
List List=新列表();
添加(新的ValidationRule(sometext,“方法regextValidation”);
添加(新的验证规则(phonenumeber,“方法regexPhoneValidation”);
添加(新的ValidationRule(somedate,“方法regexDateValidation”);
我想存储每个方法的结果并循环它们,以便查看是否有错误,如果是,则对所讨论的字段进行排序

编辑:


sometext是一个字符串,RegExtValidation是一个方法,我正在尝试一些东西,我想我会使用dictionary
dictionary\u DicValidationRules我将这样称呼它
\u DicValidationRules.Add(1,新元组(“一些文本”,regextValidation(“一些文本”))

这不是在WPF中使用验证规则的方式。通常在XAML中引用它们并为绑定定义它们。这里有一个例子

                        <DataGridTextColumn Header="Value" EditingElementStyle="{StaticResource errorStyle}">
                            <DataGridTextColumn.Binding>
                                <Binding Path="Value" NotifyOnValidationError="False" >
                                    <Binding.ValidationRules>
                                        <local:NumberValidationRule ValidationStep="RawProposedValue"/>
                                    </Binding.ValidationRules>
                                </Binding>
                            </DataGridTextColumn.Binding>
                        </DataGridTextColumn>

此特定验证规则验证用户是否在文本字段中键入了大于0的数字。您可以有多个验证规则,它们都必须返回真实的验证结果或指示错误

public class NumberValidationRule : ValidationRule
{
    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {
        double v = 0.0;
        if(double.TryParse(value as string, out v))
        {
            if(v <= 0.0)
            {
                return new ValidationResult(false, "number must be greater than 0");
            }
        }
        else
        {
            return new ValidationResult(false, "entered value is not a number");
        }
        return new ValidationResult(true, null);
    }
}
公共类NumberValidationRule:ValidationRule
{
公共覆盖验证结果验证(对象值,CultureInfo CultureInfo)
{
双v=0.0;
if(double.TryParse(值为字符串,输出v))
{
如果(v)