周りを見回しましたが、具体的に問題を見つけることができません。IDataErrorInfoまたはValidataionルールに基づくエラーが特定のコントロールに失敗した場合に備えて、WPF内のデフォルトの「エラー」処理によってコントロールの周囲に「Adorner」が配置されることを知っています。これはすべて問題ありませんが、タブ付きのページインターフェイスでは、コントロールに無効のフラグが付けられている場合、それらは赤い枠線で適切に装飾されます。ただし、タブページ1から2に移動して1に戻るとすぐに、すべての装飾者が消えます(悪い)。これはすでに求められており、解決策は受け入れられましたが、より良い代替案を探していました。
そこで、「テーマ」宣言に進み、テキストボックスコントロールについては、境界線だけでなく、コントロールの背景色全体を赤に設定するように指示しました。プロパティが変更されたときに通知を介して強制的にトリガーする必要がない場合、ページを入れ替えても、テキストボックス全体の赤い背景は一定のままです。
次に、コンボボックスコントロールに移ります。独自にカスタマイズしたり、コントロールのデフォルトのMSバージョンを調べたりした場合は、コンボボックスの魔法を機能させるために、実際にはコントロール、グリッド、列、ボタンなどのクラスター化された混乱が発生します。簡単に...
ControlTemplateグリッド(2つの列、1つは選択したテキスト表示用、2番目の列はドロップダウン矢印用)両方の列にまたがる境界線パス(線画/コンボボックスのドロップダウン画像用のグリフ)
ControlTemplate TargetTypeテキストボックス(コンボボックスセット全体の一部として)境界線、具体的には「PART_ContentHost」
コンボボックスグリッドトグルボタンドロップダウンのControlTemplateが表示され、他のトリガーのリストが表示されます。
最後に、上記のコンポーネントによってテンプレート化されたメインのComboBox宣言。
とにかく、私は私の人生のためにこれを得ることができません。コンボボックス宣言の[トグルボタン]領域に、トリガーが機能し、ControlTemplate宣言内の正しい場所にあることを証明するために、背景をOBVIOUSオフカラーに変更するトリガーがあります。
したがって、これがコンボボックス宣言内の正しい場所であることを知っているので、データにエラーがある場合は、緑の背景色を赤に置き換えたいと思います。ネイティブエラーハンドラが示すように、全体的な「Validation.HasError」が適切にトリガーされていることを知っています。テンプレート内のどこでどのように背景色を赤に変更しようとしても、機能しません。コンバーターを使用して、複数のプロパティを試し、DataTriggersを実行しようとしましたが、連携していないようです。
助言がありますか?これは本当に迷惑になっています。