2012-01-17 106 views
1

我有一個屬性是在我的一個ViewModel中構建的,它是一個整數對一個集合。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

這是完美的!謝謝! – 2012-01-17 20:06:11