我有一个TextBox.Text
属性,它是一个视图模型属性。
我想确保Text
只是数字,价值将被限制为1< X< 200.我没有在后面的代码中显示任何代码,我想对它进行单元测试。
以下代码适用于限制规则,但对于IsDigit规则仅适用于第一次,然后停止...为什么?
XAML:
<TextBox Width="150" Height="30" Text="{Binding Degree,
UpdateSourceTrigger=PropertyChanged}"/>
代码背后:
private string degree;
public string Degree
{
get { return degree; }
set
{
if (degree == value || value == string.Empty)
{
return;
}
degree = value;
if (IsDigit(degree))
{
int intValue;
intValue = int.Parse(degree);
if (intValue < 1 || intValue > 200)
{
degree = string.Empty;
}
}
else
{
degree = string.Empty;
}
OnPropertyChanged("Degree");
}
}
private static bool IsDigit(string text)
{
var regex = new Regex("[^0-9.-]+"); //regex that matches disallowed text
return !regex.IsMatch(text);
}