2012-02-23 24 views
2

私はIDataErrorInfoインターフェイスを実装して自分のエンティティを検証しました。IDataErrorInfoから保存ボタンを押してエンティティを検証するにはどうすればよいですか?

<TextBox Text="{Binding User.Name, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" /> 

正常に機能しますが、ユーザーが[保存]ボタンを押したときにデータの再検証を行います。 IDataErrorInfoでこの機能を実現するために存在する方法はありますか。

答えて

3

たぶん、あなたは

(私はあなたがMVVMを使用しているasume)これはあなたより多くの制御...あなたはボタンのクリックコマンドで実行することができGetErrors方法などを含むを与える必要がありますINotifyDataErrorInfoインタフェース

を使用することを検討すべきですここに関する情報を

見つける:

http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifydataerrorinfo(v=vs.95).aspx

とここで良いブログ記事:

http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2009/11/18/silverlight-4-rough-notes-binding-with-inotifydataerrorinfo.aspx

2

IDataInfoは

  1. を実装するための2つの事柄インデクサプロパティeverytingがOKであるとき、nullまたはString.Emptyのある
  2. Errorプロパティが必要です。それ以外の場合は、エラーの説明です。

保存する前にエンティティを手動で検証する場合は、.Errorプロパティがチェックされ、.Errorがnullまたは空の場合にのみ保存を実行できます。私は、EFがIDataErrorInfoを自動的に利用できる方法を知らない。しかし、あなたのUIが正しい方法で実装されている場合、ユーザーはすべてがOKになるまでデータを保存するオプションを持つべきではありません。これは、コマンドのCanExecuteChangedプロパティを使用して実装できます(.Errorがnullまたは空の場合にのみtrueにします)。

関連する問題