gpt4 book ai didi

wpf - 如何实现文本框的绑定(bind)验证?

转载 作者:行者123 更新时间:2023-12-01 11:42:04 25 4
gpt4 key购买 nike

如何实现文本框的绑定(bind)验证?

<TextBox Name="textBox1" Width="50" FontSize="15"
Validation.ErrorTemplate="{StaticResource validationTemplate}"
Style="{StaticResource textBoxInError}"
Grid.Row="1" Grid.Column="1" Margin="2">
<TextBox.Text>
<Binding Path="Age" Source="{StaticResource ods}"
UpdateSourceTrigger="PropertyChanged" >
<Binding.ValidationRules>
// *** What should I write here? ***
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>

验证规则应该写什么?

最佳答案

以下示例显示了 AgeRangeRule 的实现,它继承自 ValidationRule 并重写了 Validate 方法。对值调用 Int32.Parse() 方法以确保它不包含任何无效字符。 Validate 方法返回一个 ValidationResult,根据解析过程中是否捕获到异常以及年龄值是否超出下限和上限来指示该值是否有效。

public class AgeRangeRule : ValidationRule
{
private int _min;
private int _max;

public AgeRangeRule()
{
}

public int Min
{
get { return _min; }
set { _min = value; }
}

public int Max
{
get { return _max; }
set { _max = value; }
}

public override ValidationResult Validate(object value, CultureInfo cultureInfo)
{
int age = 0;

try
{
if (((string)value).Length > 0)
age = Int32.Parse((String)value);
}
catch (Exception e)
{
return new ValidationResult(false, "Illegal characters or " + e.Message);
}

if ((age < Min) || (age > Max))
{
return new ValidationResult(false,
"Please enter an age in the range: " + Min + " - " + Max + ".");
}
else
{
return new ValidationResult(true, null);
}
}
}

关于wpf - 如何实现文本框的绑定(bind)验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19267698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com