【发布时间】:2018-01-17 13:57:30
【问题描述】:
我正在尝试验证在 WPF 的 Datagrid 中输入的输入。
我已向 XAML 添加了验证规则。
输入不再是一个对象,而是一个字符串或整数。虽然我使用的方法需要一个对象。
我怎样才能解决这个问题并使它与 int 或 string 一起工作。输入只能是 1 到 20 之间的 int。
XAML:
<DataGridTextColumn Header="Niveau">
<DataGridTextColumn.Binding>
<Binding Path="Niveau" UpdateSourceTrigger="LostFocus">
<Binding.ValidationRules>
<valRule:NiveautredeValidationRule />
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
C#
public class NiveautredeValidationRule : ValidationRule
{
public override System.Windows.Controls.ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
NiveaudoelenViewModel doel = (value as BindingGroup).Items[0] as NiveaudoelenViewModel;
if (doel.Niveau <= 0 || doel.Niveau > 20)
{
return new System.Windows.Controls.ValidationResult(false, "Niveau moet tussen de 1 en 20 zijn!");
}
else
{
return System.Windows.Controls.ValidationResult.ValidResult;
}
}
}
【问题讨论】: