Silverlight 4.0 如何绑定到DomainService上的调用操作?

Silverlight 4.0 如何绑定到DomainService上的调用操作?,silverlight-4.0,wcf-ria-services,Silverlight 4.0,Wcf Ria Services,我正在修补RIA服务,我已经创建了一个DomainService,我能够将它绑定到网格/数据表单等等。。。但就我个人而言,我不知道如何在该域服务上调用自定义方法。我创建了这样一个方法: [Invoke] public IEnumerable<string> GetCities() { return new List<string>() { "some city" }; } [调用] 公共IEnumerable GetCities() { 返回新列表(){“某个城

我正在修补RIA服务,我已经创建了一个DomainService,我能够将它绑定到网格/数据表单等等。。。但就我个人而言,我不知道如何在该域服务上调用自定义方法。我创建了这样一个方法:

[Invoke]
public IEnumerable<string> GetCities()
{
    return new List<string>() { "some city" };
}
[调用]
公共IEnumerable GetCities()
{
返回新列表(){“某个城市”};
}
我希望能够将combobox的items集合绑定到该方法(单向)


在silverlight页面中,有一个
peopleDomainService
对象,当向用于绑定的页面添加控件时,该对象被创建为资源。但是在它上面我找不到任何自定义方法。

假设您的调用方法在FoodDomainService中,您会这样调用它:

fooDomainServiceInstance.Context.GetCities( (op) =>
{
  if (op.HasError)
  {
    // Handle error.
  }
  else
  {
   var data = ( op as InvokeOperation<IEnumerable<string>> ).Value;
   // Do something with the data...
  }
}, null);
fooDomainServiceInstance.Context.GetCities((op)=>
{
如果(op.HASRERROR)
{
//处理错误。
}
其他的
{
var data=(作为InvokeOperation的op).Value;
//对数据做点什么。。。
}
},空);

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

只要您重新构建了.Web项目,这种方法应该可以很好地工作

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

并添加GetCities\u加载的事件来处理结果。

问题是domainServiceInstance上没有上下文属性。有一个DataContext和一个DomainContext,它们都没有GetCities方法。您有RIA创建的两个项目(一个是.Web项目,一个是Silverlight项目)。在Silverlight one中,如果您创建了一个新的domainServiceInstanceDomainContext,您是否可以在其上看到GetCities方法(使用Intellisense)?不,这就是问题所在。我昨晚在做这个,看起来我必须将domainServiceInstance.DomainContext转换为我的DomainService类型,才能获得它。不过,你的回答确实把我引向了那个方向。多谢各位+1.