2012-04-16 19 views
0

私はデータ入力フォームを持ち、DataCountextはViewModelオブジェクトにバインドされています。WPF/XAML - GroupBoxのValidationRule?

フォームには、多くの場合、ViewModelのブール値にバインドされたいくつかのCheckBox要素が含まれています。これらのチェックボックスは、2つのグループボックスにグループ化されています。

私には2つのビジネス要件がありますが、どのように処理するのかわかりません。

  1. グループボックス1のチェックボックスが1つ以上選択されているか、グループボックス2のチェックボックスが1つ以上選択されています。
  2. グループボックス1に何かが選択されている場合、グループボックス2のすべてが選択されず、その逆もあります。

誰でもアイデアはありますか?

答えて

0

問題1の解決策は簡単です.VM内のプロパティ設定ツールでは、設定しないでください。バインディングは、ディスプレイを適切に更新します。

問題2の解決策は少し複雑です。 GroupBoxレベルでエラーを表示する場合は、GroupBoxにBindingGroupを添付し、適切なValidationRuleを追加する必要があります。

0

ViewModelでカバーするようなサウンドです。 VM getは、既に有効な状態(何かが選択されている)である初期状態です。 ユーザーが別のものを選択した場合は、他のグループのプロパティをfalseに設定することでそれをカバーできます。

+0

ViewModelにルールを違反していないかどうかを確認するメソッドを配置するのは簡単です。しかし、ビューに表示されるフォームの検証動作にどのように結び付けるかはわかりません。チェックボックスがチェックされていない場合は、赤い枠線で囲まれたGroupBoxとValidation.Errorsに適切なメッセージが表示されます。 IDataErrorInfoを使って遊んでいて、個々のコントロールの周りに赤いボックスを表示することができましたが、GroupBoxの周りを描画する方法はわかりません。 –

関連する問題