杨石头微博,新花招!掏耳朵骗局事先准备耳屎,教室讲桌
需求描述
1.按钮的状态需要根据多个数据源的内容作出不同的组合判断
2.每个数据源的判断规则可定制
注:以下功能感觉只是简单粗暴的实现,如果您了解更优雅的解决方案,烦请告诉我下,感谢先!
按钮xaml
public object convert(object[] values, type targettype, object parameter, cultureinfo culture)
{
string[] paramlist = ((string)parameter).split('|');
if (paramlist == null || paramlist.length <= 0)
{
throw new argumentnullexception("parameter");
}
int length = paramlist.length;
ilist<bool> boollist = new list<bool>();
for (int i = 0; i < paramlist.length; i++)
{
switch (paramlist[i].tolowerinvariant())
{
case "checknameexisted":
boollist.add(validationrulehelper.validate<invalidchecknameexistedvalidationrule>(values[i]));
break;
case "directoryandfileexist":
boollist.add(validationrulehelper.validate<invaliddirectoryandfileexistvalidationrule>(values[i]));
break;
case "greaterthanzerointeger":
boollist.add(validationrulehelper.validate<invalidgreaterthanzerointegervalidationrule>(values[i]));
break;
case "numericnull":
boollist.add(validationrulehelper.validate<invalidnumericnullvalidationrule>(values[i]));
break;
case "stringlength":
boollist.add(validationrulehelper.validate<invalidstringlengthvalidationrule>(values[i]));
break;
case "stringnullorempty":
boollist.add(validationrulehelper.validate<invalidstringnulloremptyvalidationrule>(values[i]));
break;
case "ipaddress":
boollist.add(validationrulehelper.validate<invalidipaddressvalidationrule>(values[i]));
break;
case "objectnull":
default:
boollist.add(validationrulehelper.validate<invalidobjectnullvalidationrule>(values[i]));
break;
}
}
bool result = boollist[0];
for (int i = 1; i < boollist.count; i++)
{
result = result & boollist[i];
}
return result;
}
public object[] convertback(object value, type[] targettypes, object parameter, cultureinfo culture)
{
return null;
}
#endregion
}
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Net Core Web Api项目与在NginX下发布的方法
asp.net core3.1 引用的元包dll版本兼容性问题解决方案
IdentityServer4实现.Net Core API接口权限认证(快速入门)
ASP.NET Core MVC通过IViewLocationExpander扩展视图搜索路径的实现
网友评论