我现在遇到的问题是,对于我目前拥有的每个文本框,我必须指定一个绑定路径以验证文本框是否为空。但是,如果碰巧我有一百个文本框,我不可能为所有 100 个文本框单独创建一个获取和设置方法。那么有没有更好的方法来进行我现在拥有的当前验证?
以下是我目前拥有的代码,
在 XAML 中
<Grid.BindingGroup>
<BindingGroup Name="RequiredFields">
<BindingGroup.ValidationRules>
<local:MandatoryFieldRule ValidationStep ="CommittedValue"/>
</BindingGroup.ValidationRules>
</BindingGroup>
</Grid.BindingGroup>
<TextBox x:Name="ds_instruct" HorizontalAlignment="Left" Height="30"
Margin="286,186,0,0" TextWrapping="Wrap" VerticalAlignment="Top"
Width="275" FontSize="11" GotFocus="textBox_Expand"
LostFocus="textBox_Expand" Tag="Default Special Instruction"
SpellCheck.IsEnabled="True"
Text="{Binding Path=Text, BindingGroupName=RequiredFields,ValidatesOnDataErrors=true}"/>
在验证文件中:
public String Text { get; set; }
public String Text1 { get; set; }
#region IDataErrorInfo Members
public string Error
{
get {throw new NotImplementedException(); }
}
public string this[string columnName]
{
get
{
string result = null;
if (columnName == "Text")
{
if (string.IsNullOrEmpty(Text))
{result = "Mandatory field required"; }
}
if (columnName == "Text1")
{
if (string.IsNullOrEmpty(Text1))
{ result = "Mandatory field required"; }
}
return result;
}
}
#endregion
所以我的问题是,如何在不指定一对一绑定的情况下验证多个文本框的必填字段(文本框到 getter 和 setter 方法)?
谢谢大家!