Validation 正在验证表单页上输入的数据:WPF
我有大约20个控件,它们绑定到一个类的不同属性以及下面的验证规则。为了理解,我正在为一个控件编写代码,因为另一个控件是相同的Validation 正在验证表单页上输入的数据:WPF,validation,wpf-controls,binding,Validation,Wpf Controls,Binding,我有大约20个控件,它们绑定到一个类的不同属性以及下面的验证规则。为了理解,我正在为一个控件编写代码,因为另一个控件是相同的 <TextBox Style="{StaticResource errorStyle}" Grid.Column="0" Grid.Row="2" Grid.RowSpan="1" HorizontalAlignment="Left" Margin="110,100,0,0" Name="balesText" VerticalAlignment="Top" Wid
<TextBox Style="{StaticResource errorStyle}" Grid.Column="0" Grid.Row="2" Grid.RowSpan="1" HorizontalAlignment="Left" Margin="110,100,0,0" Name="balesText" VerticalAlignment="Top" Width="170" >
<TextBox.Text>
<Binding Source="{StaticResource insertTransaction}" UpdateSourceTrigger="Explicit" Path="Bales">
<Binding.ValidationRules>
<ExceptionValidationRule/>
</Binding.ValidationRules>
</Binding>
</TextBox.Text>
</TextBox>
现在,问题是:我有没有办法一次性验证这20个控件,或者我需要手动定义它们的BindingExpression
并检查验证错误???使您自己的用户控件成为“OwnTextBox”。从TextBox(OwnTextBox:TextBox
)继承它,并在其中定义DependencyProperty Validate。然后您只需记住,文本框是逻辑树的一部分,并从中进行搜索。创建您自己的用户控件“OwnTextBox”。从TextBox(OwnTextBox:TextBox
)继承它,并在其中定义DependencyProperty Validate。然后您只需记住,文本框是逻辑树的一部分,并从中进行搜索
BindingExpression balesBe = balesText.GetBindingExpression(TextBox.TextProperty);
balesBe.UpdateSource();
.
.
if (balesBe.HasError)
{
MessageBox.Show("Please correct Errors", "Insert Aborted");
}
else
{
Binding insertTransactionBinding = BindingOperations.GetBinding(balesText, TextBox.TextProperty);
InsertTransaction insertTransaction = insertTransactionBinding.Source as InsertTransaction;
insertMessage = insertTransaction.Add();
MessageBox.Show(insertMessage, "Transaction");
this.NavigationService.Refresh();
}