【问题标题】:Silverlight WCF/RIA MVVM PropertySilverlight WCF/RIA MVVM 属性
【发布时间】:2012-02-12 08:27:02
【问题描述】:

我在我的一个 ViewModel 中构建了一个属性,它是一个整数与一个集合。

    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 中。

有人知道怎么做吗?

谢谢,

尼尔

【问题讨论】:

    标签: silverlight mvvm wcf-ria-services


    【解决方案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);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-21
      相关资源
      最近更新 更多