2009-07-20 6 views
0

これは、my previous questionのフォローアップの一部です。人々が私にMVVMの方向性を指摘しました。ViewModelにURIまたは文字列を含める必要がありますか?

私は、このフレームワークで作業がどこにあるのかを正確に理解しようとしています。私のビューには、ユーザがURIを入力するためのテキストボックスが含まれています。 URIが有効であるかどうかを確認し、それがある場合は、それを変換するコンバータとバリデータを使用して、私のViewModelにでUriオブジェクトに

  1. バインド:

    は、私の知る限り見るように、私は2つの選択肢があります。 ViewModelは有効なUriまたはDependencyProperty.UnsetValueのいずれかで終了します。 (私はthisのようなコンバーター/バリデータを組み合わせたものを使用しています;この良いMVVMのプラクティスですか?)

  2. 私のViewModelにstringにバインドし、ViewModelのコードに必要な変換/検証を行います。 ViewModelにURI文字列が無効であることをビューに伝え、適切な検証エラーを表示するコードが何であるかは完全にはわかりません。

一般的に、MVVMフレームワークで無効なデータを処理する方法と場所についての質問があります。これは私がブラウズしてきたMVVMの基本的な紹介のいずれにも含まれていないようです。これをすべて私の心の中でまっすぐにすることにあなたの助けをありがとう:)。

答えて

1

あなたの検証フレームワークを持っている必要があります。ユーザーからの入力を検証し、有効であることが確認されたら、ViewModelのUriプロパティにコンバータによってバインドする必要があります。

どのように検証を設定するかによって異なりますが、ViewModelでプロパティが設定される前に検証が行われる必要があります。

希望に役立ちます!

+0

ありがとうございました!あなたは "バリデーション・フレームワーク"のアイデアを精緻化できますか?今、私はちょうどそのタイプの各フィールドのバリデータ+コンバータクラスを作成すると思っています。人々が(MVVMなどで)使用する、より正式なフレームワークがありますか? – Domenic

+0

入力要素にバリデーションルールを適用することができます。バリデーションフレームワークでは、そのロジックレイヤをどのように管理するのかということです。私は以前にWPFに組み込まれているものを拡張するオープンソースのフレームワークを使用しました...ここにリンクがあります。 http://www.codeplex.com/wpfvalidation –

+0

**他にもオプションがあります。がんばろう –

関連する問題