Dan*_*iel 5 c# validation wpf namespaces validationrule
由于某种原因,我的程序找不到我的自定义验证规则 f\xc3\xbcr 我的文本框。我定义验证规则所在的命名空间
\n\nxmlns:valRule="clr-namespace:MovieDB.UI.Validation" \nRun Code Online (Sandbox Code Playgroud)\n\n我将我的规则绑定到文本框
\n\n <TextBox x:Name="textBoxName" Height="23" Margin="59,13,10,0" TextWrapping="Wrap" VerticalAlignment="Top">\n <TextBox.Text>\n <Binding Path="archiveName">\n <Binding.ValidationRules>\n <valRule:ArchiveNameValidationRule />\n </Binding.ValidationRules>\n </Binding>\n </TextBox.Text>\n </TextBox>\nRun Code Online (Sandbox Code Playgroud)\n\n我在这里定义我的规则
\n\nnamespace MovieDB.UI.Validation\n{\n public class ArchiveNameValidationRule : ValidationRule\n {\n\n private static char[] FORBIDEN_CHARS = new char[] { \'*\', \'&\', \'#\', \'/\', \' \', \'\\\\\', \'+\', \'=\', \'?\', \')\', \'(\', \']\', \'[\', \'}\',\n \'{\', \'%\', \'$\', \'\xc2\xa7\', \'"\', \'!\', \'\xc3\xb6\', \'\xc3\xbc\' ,\'\xc3\xa4\', \'\xc3\x84\', \'\xc3\x96\', \'\xc3\x9c\', \':\', \'.\', \';\', \',\', };\n\n public override ValidationResult Validate(object value, CultureInfo cultureInfo)\n {\n String val = value as String;\n bool result = val.IndexOfAny(FORBIDEN_CHARS) != -1;\n ValidationResult vr = new ValidationResult(result, "Es sind nur Zahlen, Buchstaben und Unterstriche erlaubt.");\n return vr;\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n我总是收到错误:
\n\n\n\n\n命名空间\n \'clr-namespace:MovieDB.UI.Validation\' 中不存在标记 ArchiveNameValidationRule。
\n
即使我将规则定位在与窗口相同的命名空间中,我也没有成功。
\n\n更新:\n如果我更改目标框架,则在重新打开项目后会发现新的验证规则。
\n