2009-09-04 3 views
0

これは私がwpfを初めて使用しているために少し巻き込まれるかもしれません。主に検証に使用されるL2Sクラスのエンティティの部分クラスを作成しました。これは、onchangingおよびonvalidateメソッドを実装します。私はMVVMパターンを使用しようとしていますし、ウィンドウ/ビューで、私はXAMLでのDataContextを設定している:バリデーションL2Sの質問

<Window.DataContext> 
    <vm:StartViewModel /> 
</Window.DataContext> 

ユーザーがビューを空白に必須フィールドを残し、部分クラスのonchangingイベントフォームを閉じるとデータが保存されません。したがって、ユーザーがテキストボックスを空白のままにした場合、古い値が保持され、オンチャージ方式が起動されますが、結果のエラーをユーザーに警告する方法はありません。ここに私のonchangingコードは部分クラスである:

partial void Ondocument_titleChanging(string value) 
    { 
     if (value.Length == 0) 
      throw new Exception("Document title is required."); 
     if (value.Length > 256) 
      throw new Exception("Document title cannot be longer than 256 characters."); 
    } 

は、エラーをユーザに通知していない例外をスローします。フォームはテキストボックスの変更を閉じて拒否するだけです。これは理にかなって

希望は...

編集: この例では、ここではスコットGuthriesの記事から撮影された: http://aspalliance.com/1427_LINQ_to_SQL_Part_5__Binding_UI_using_the_ASPLinqDataSource_Control.5

答えて

0

OK、それを考え出しました。私はコントロールのバインディングに以下を追加する必要がありました:

Text="{Binding Path=CurrentDocument.document_title, ValidatesOnDataErrors=True, NotifyOnValidationError=True, UpdateSourceTrigger=PropertyChanged}"