2011-09-20 10 views
1

WP7 7.0アプリケーション(SL3)でこれを行う最良の方法は何ですか?私は視覚的状態を使うべきですか? Silverlightの例のようなモデルの種類の属性を使用する方法はありますか? MVVM + WP7の良い例は?MVVMライトを使用したWindows Phone 7のテキストボックスの検証

これまでのところ私はこれらの2つの例が見つかりました。すべてのために

http://babaandthepigman.wordpress.com/2010/10/21/simple-textbox-validation-wp7/ http://www.windowsphonegeek.com/articles/Building-WP7-Custom-Validation-Control---Architecture-amp-Basic-Prototype

+0

なぜそれが有効な質問です。 +1をレベルアップする。 – AxelEckenberger

+0

私のWP7検証の例がまだ関連していればそれを見ることができます:http://vortexwolf.wordpress.com/2012/03/10/windows-phone-7-validation – vorrtex

答えて

0

あなたが検証済みという名前のファイル(VIEWNAME).csファイルを作るためにすべきで表示します。 ValidatedModelBase実装のインターフェイスINotifyPropertyChanged、INotifiDataErrorから継承する必要があります。 ValidationModelBaseの

プロパティ: でIsValid ShowErrors

方法: - : - それはなります

public void Validate() 
    { 
     var fields = new List<string>(); 
     var type = this.GetType(); 
     var baseType = typeof(ValidatedModelBase<T>); 

     while (type != baseType) 
     { 
      fields.AddRange(type.GetFields() 
       .Where(field => field.FieldType == typeof(String) && field.Name.EndsWith("PropertyName")) 
       .Select(field => field.GetValue(this) as String)); 

      type = type.BaseType; 
     } 

     foreach (var field in fields) 
     { 
      this.SetErrors(field, this.Validate(field), false); 
     } 

     this.RefreshIsValid(); 
    } 

仮想IListの検証(文字列propertyNameの) T ToModelのViewModel 無効検証するために、すべてのValidatedModelフィールドを変換しますValidatedModelsに実装されています。ここでは、プロパティ名を指定してパラメータとして検証し、単純なスイッチ/ケース命令で処理します。

あなたが望むなら、私の方法についてもっと詳しく書くことができます。

+0

私は完全に理解していません。しかし、私は、このフィールドがモデルのアトリビュートを使って各フィールドを検証する方法を理解することを訂正していますか? – punkouter

+0

ビューのフィールドを常にValidatedModel(Binding VaildatedModel.FieldName)にバインドします。 – Zozo

+0

病気は理解するのが最善です。サンプルコードがあれば教えてください。 ValidatedModel = ViewModel?私はこれがWP7/MVVMLightと単純なテキストボックスと送信ボタンでどのように使われるのかを理解しようとしています。 – punkouter

関連する問題