由于某种原因,我的程序没有找到我的TextBox的自定义验证规则。我定义了我的验证规则所在的命名空间
xmlns:valRule="clr-namespace:MovieDB.UI.Validation"
我将我的规则绑定到TextBox
<TextBox x:Name="textBoxName" Height="23" Margin="59,13,10,0" TextWrapping="Wrap" VerticalAlignment="Top">
<TextBox.Text>
<Binding Path="archiveName">
<Binding.ValidationRules>
<valRule:ArchiveNameValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
我在这里定义我的规则
namespace MovieDB.UI.Validation
{
public class ArchiveNameValidationRule : ValidationRule
{
private static char[] FORBIDEN_CHARS = new char[] { '*', '&', '#', '/', ' ', '\\', '+', '=', '?', ')', '(', ']', '[', '}',
'{', '%', '$', '§', '"', '!', 'ö', 'ü' ,'ä', 'Ä', 'Ö', 'Ü', ':', '.', ';', ',', };
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
String val = value as String;
bool result = val.IndexOfAny(FORBIDEN_CHARS) != -1;
ValidationResult vr = new ValidationResult(result, "Es sind nur Zahlen, Buchstaben und Unterstriche erlaubt.");
return vr;
}
}
}
我总是收到错误:
标识符ArchiveNameValidationRule在命名空间中不存在 'CLR-名称空间:MovieDB.UI.Validation'。
即使我将规则定位在与Window相同的命名空间中,我也没有成功。
更新: 如果我更改目标框架,则在重新打开项目后找到新的验证规则。