Проверка, является ли символ ASCII-символом, довольно просто на самом деле.
Похоже, вы взяли код из примера класса на странице документов .NET . Существует класс для проверки возрастного диапазона, поэтому ему понадобятся свойства Min
и Max
, но они вам не нужны, и правило проверки, безусловно, не всегда необходимо реализоватьих можно безопасно удалить.
Правило проверки может выглядеть примерно так (C # 7 или более поздняя версия):
using System.Globalization;
using System.Linq;
using System.Windows.Controls;
public class NameRule : ValidationRule
{
public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
return value is string str && str.All(ch => ch < 128)
? ValidationResult.ValidResult
: new ValidationResult(false, "The name contains illegal characters");
}
}
Часть ch < 128
является проверкой ASCII.
Также необходимо указать, что вы хотите использовать правило в привязке (предположим, что ваше правило находится в пространстве имен c
XAML).
<TextBox Name="PbnameText" Visibility="Collapsed" IsReadOnly="False">
<TextBox.Text>
<Binding Path="Name" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<c:NameRule />
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
Дополнительную информацию можно найти напроверка привязки данных в документах .