「テリトリー」フィールドを含むデータベースレコードをマッピングしているORMオブジェクトをラップするViewModelに裏打ちされたフォームがあります。
このフィールドのビジネスロジックは、「ValidateTerritory」構成フラグによって切り替えられます。フラグがオンになっている場合、フィールドにはテリトリーテーブルの値の1つが含まれている必要があります。この場合、ビューには、これらの領域が設定されたComboBoxが含まれている必要があります。これは簡単に処理できます。データベースから入力されたViewModelにValidTerritoriesプロパティを含め、ComboBoxのItemsSourceをそのプロパティにバインドします。そしてもちろん、ComboBoxのSelectedValueをORMのテリトリーフィールドにバインドします。
問題は、「ValidateTerritory」フラグがオフになっている場合、このフィールドに検証ルールがないことです。これは、制約のない値を含むプレーンテキストフィールドです。この場合、ビューにはTextBoxが含まれ、そのTextプロパティがORMのフィールドにバインドされている必要があります。
問題は、これを処理する最もクリーンな方法は何ですか?その構成オブジェクトの値に基づいて、フォームのコントロールをあるタイプから別のタイプに切り替えますか?