Недвижимость Silverlight WCF / RIA MVVM - PullRequest
1 голос
/ 17 января 2012

У меня есть свойство, встроенное в одну из моих ViewModels, которое является целым числом по сравнению с коллекцией.

    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 Ответ

1 голос
/ 17 января 2012

Есть ли у вас родительская форма в коллекции? Если да, ваш запрос должен работать, просто используйте 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);
}
...