2016-11-08 3 views
1

モデルには必須ですが、最初はView - MVVMの空欄です

私はEnum型のプロパティを持つモデルを持っています。このプロパティは必須ですが、ビューの初期値は空でなければなりません。

モデルよりも正しいとわかっていれば、nullableプロパティはありません。しかし、viewModelにはnullが設定されます。これは正しい方法ですか?

は、この場合、次のようになります。

  • はViewModelにを作成する必要が
  • ViewModelに、時には
  • のViewModelが設定するためのロジックを必要とするさまざまなデータを持っているし、モデルへ/から正しい値を取得したり、中にはnullを取得しますモデル初めてと
  • ViewModelには、もう一つの検証ルール

他の方法が必要ですモデルであるとして残します次のとおりです。

モデルは、NULL可能性を有していると検証を必要とします:

  • モデルをモデル化するためにバインドすることができ、「現実に対応しない」は
  • 我々がNULL可能で列挙型からのデータを公開し、約忘れて、常に必要ヌル?または
  • NULL可能プロパティは、UIの要件であり、(ドメイン)モデルがnull非許容列挙型を使用して持って将来

答えて

0

に変更することができます(DTOまたはこのような何かに変換)それを扱う価値がなければならないことを示唆ユースケースやデータの整合性のために有効な値を持つ。ビュー(専用のViewModel経由)ポストNULL値とチェックが

です:

1 2のものになります(それ以外の場合は初期または)非有効な値を許可するようにUI上の要件を有します(ユーザーが選択ボックスから「Please Select」値を選択したと仮定して)、サーバーは「有効な値を選択してください」というエラーメッセージを表示します。 または、サーバーは、View Modelからnullを許可し、ドメインモデルプロパティを既定の感知可能な値にデフォルト設定します。

私の経験では、この種の設定では、UIが提示時にフィードバック(またはフロントエンド/クライアントの一部の検証を使用する)だけで迷惑をかける無効な選択肢があるため、等)。

UIが選択のための有効な列挙値のみを表示し、オプションでデフォルト値を分かりやすい値にするように、その要件を再考する方がいいでしょう。

実際にUIに有効な初期値がないようにするには、null可能なバージョンのビューモデルを作成し、推奨どおりにサーバーで検証する必要があります。限り、null可能性のある(ドメイン)モデルを変更する限り、あなたはすでにこれがUIのみの要件であると考えているので、良い衝動である "現実に対応していない"と心配しているようです。あなたのユースケースやビジネス要件を満たすために必要なドメインモダリティを現実に近いものにしてください。

関連する問題