2012-01-17 3 views
1

У меня есть свойство, построенное в одной из моих ViewModels, которая представляет собой целое число против коллекции.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

Это прекрасно! Благодаря! –