2012-01-17 10 views
1

私はViewModelsの1つに組み込まれたプロパティを持っています。これは、整数とコレクションです。Silverlight WCF/RIA MVVMプロパティ

private int _formTypeID; 
    public int FormTypeID 
    { 
     get { return _formTypeID; } 

     set 
     { 
      if (_formTypeID == value) 
      { 
       return; 
      } 
      _formTypeID = value; 
      RaisePropertyChanged("FormTypeID"); 
     } 
    } 

私がしたいのは、私のDomainContextからのクエリからこれをロードすることです。クエリは次のようになります。

public int GetFormTypeByForm(int Formid) 
    { 
     var p = (from i in this.ObjectContext.Forms 
       where i.FormID == Formid 
       select i.FormType).FirstOrDefault(); 

     return p; 
    } 

しかし、私はこれを行う方法を理解できないようです。フォーム固有のデータを読み込むためにこのプロパティを使用し、カスタム列定義をXAMLに読み込みます。

誰でもこの方法を知っていますか?

おかげで、

ニール

答えて

1

を使用すると、コレクション内の親フォームの存在を持っていますか?はいの場合は、代わりにSingleOrDefaultを使用してください。

そうしないと、DomainContextにフォームをロードする必要があります。

private int _FormType; 
public int FormType 
{ 
    get { return _FormType; } 
    set 
    { 
    if (_FormType == value) return; 
    _FormType = value; 
    RaisePropertyChanged("FormType"); 
    } 
} 

public void LoadFormTypeByForm(int Formid) 
{ 
    var query = (from f in this.ObjectContext.Forms 
       where f.FormID == Formid 
       select f.FormType); 

    var action = new Action<LoadOperation<Form>>((op) => 
    { 
     if (op.HasError && !op.IsErrorHandled) 
     { 
     op.MarkErrorAsHandled(); 
     return; 
     } 
     var form = ObjectContext.Forms.SingleOrDefault(f => f.FormID == FormID); 
     if (form != null) 
     FormType = form.FormType; 
    }); 
    Context.Load(query, action, null); 
} 
+1

完璧です!ありがとう! –

関連する問題