如何绑定到DomainService上的Invoke操作?

时间:2010-12-17 20:20:49

标签: silverlight-4.0 wcf-ria-services

我正在修改RIA服务,我已经创建了一个DomainService,我可以将它绑定到网格/数据表等......但是对于我的生活,我看不出我怎么称呼该DomainService上的自定义方法。我创建了一个这样的方法:

[Invoke]
public IEnumerable<string> GetCities()
{
    return new List<string>() { "some city" };
}

我希望能够将组合框的项集合绑定到该方法(单向)。

在silverlight页面中,有一个peopleDomainService对象在向用于绑定的页面添加控件时创建为资源。但是我无处可寻找任何自定义方法。

2 个答案:

答案 0 :(得分:1)

假设您的invoke方法位于FooDomainService中,您可以这样调用它:

fooDomainServiceInstance.Context.GetCities( (op) =>
{
  if (op.HasError)
  {
    // Handle error.
  }
  else
  {
   var data = ( op as InvokeOperation<IEnumerable<string>> ).Value;
   // Do something with the data...
  }
}, null);

答案 1 :(得分:1)

您描述没有看到该方法的方式让我想知道您是否已经创建了peopleDomainService的实例,或者您只是引用了自动放入XAML的类定义。

只要您重建了.Web项目,这样的事情应该可以正常工作。

peopleDomainService ldCTX = new peopleDomainService();
var query = ctx.GetCities();
ldCTX.Load( query, GetCities_Loaded, null );

添加GetCities_Loaded事件以处理结果。