2010-11-18 11 views
2

私はSilverlight検証について少し迷っています。 と一緒にIDataErrorInfoをどのように使用するかを考え出したので、一度確認すると、コントロールの周りの赤い枠線が表示されるようになりました。Silverlight 4のViewModelの子にフックの検証サマリー

しかし、私は奇妙な理由で、私は表示するValidationSummaryを得ることができません。

私は現在、現在のViewModelの子にバインドされているすべてのコントロールに関連していると考えています。私がお客様にバインドするにValidationSummaryのDataContextプロパティを設定しようとした

<TextBox Text="{Binding Path=NewCustomer.Address, Mode=TwoWay, 
     ValidatesOnNotifyDataErrors=True, ValidatesOnDataErrors=True}"/> 

:すべての入力要素は、このようなバインディングを通じてNewCustomerViewModel内部に含まれるCustomerオブジェクトにバインドされている間そこで、ユーザーコントロールがNewCustomerViewModelにバインドされている

プロパティ、しかしそれはうまくいきません。

アイデア?

答えて

3

私はそれはあなたがUIエレメントににValidationSummaryのtargetプロパティを設定する必要があることかもしれないと思います。それが私のためにやったことです。

0

なぜIDataErrorInfo の両方をINotifyDataErrorInfoインターフェイスに実装していますか? の両方を実装できますが、必要はありません。 INotifyDataErrorInfoインターフェイスはSilverlightに固有のインターフェイスで、IDataErrorInfoインターフェイス(IMO)より優れています。バインディングでValidatesOnDataErrorsをTrueに設定する必要はありません(関連付けられたインターフェイスを使用していないため)。Trueをデフォルト値とするため、ValidatesOnNotifyDataErrorsプロパティをTrueに設定する必要はありません。

しかし、これは実際にあなたの質問に答えるものではありません。私はおそらくあなたに多くの助けを与えるためにいくつかの詳細(あなたのXAMLを中心に)が必要になります。問題を示すサンプルプロジェクトをまとめる機会はありますか?

クリス

+0

確かにサンプルをまとめます。 'INotifyDataErrorInfo'のために。私がこのインターフェースを使用する主な理由は、ユーザーが入力を一切入力せずに「保存」をクリックした場合、コントロールが無効であることをコントロールに通知できることです。 IDataErrorInfoだけでは不可能でした(少なくとも私のためではない)。私はIDataErrorInfoインターフェイスをすべて削除することができたと思います。私はサンプルをまとめます。ご協力ありがとうございます。books.google.comであなたの書籍をチェックしても、そのトピックについては本当に助けになりませんでした。 – Tigraine

関連する問題