Как я могу привязать к операции Invoke на DomainService? - PullRequest
1 голос
/ 17 декабря 2010

Я работаю со Службами RIA, и я создал DomainService, и я могу связать это с сетками / формами данных и тому подобным ... но для жизни я не могу понять, как я могу позвонить пользовательские методы на этом DomainService. Я создал такой метод:

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

Я хочу иметь возможность привязать коллекцию элементов комбинированного списка к этому методу (в одну сторону).

На странице silverlight есть объект peopleDomainService, который создается как ресурс при добавлении элементов управления на страницу, которая используется для привязки. Но нигде я не могу найти ни один из моих пользовательских методов.

Ответы [ 2 ]

1 голос
/ 18 декабря 2010

То, как вы описываете, что не видите метод, заставляет задуматься, создали ли вы экземпляр peopleDomainService или вы просто ссылаетесь на определение класса, которое было автоматически помещено в XAML.

Примерно так должно работать, если вы перестроили .Web проект.

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

И добавьте событие GetCities_Loaded для обработки результата.

1 голос
/ 18 декабря 2010

Если ваш метод вызова находится в 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);
...