2011-01-30 7 views
1

私は約20のコントロールをクラスのさまざまなプロパティにバインドして、次のような検証ルールとともに使用します。理解のために、私は他のものが同じであるため、あるコントロールのコードを書いています。今、私は次のようフォームページに入力されたデータを検証する:WPF

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(); 
     } 

でコードビハインドで入力エラーをチェックしています

<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> 

さて、質問は次のとおりです。私は1つにこれらの20個のコントロールを検証することができます任意の方法はあります行くか、私は手動でBindingExpressionを定義し、検証エラーをチェックする必要がありますか?

答えて

1

独自のUserControl "OwnTextBox"を作成します。 TextBox(OwnTextBox: TextBox)から継承し、DependencyProperty Validateを定義します。その後、TextBoxは論理ツリーの一部であり、そこから検索を行います。

関連する問題