РИА: как перехватить данные - PullRequest
1 голос
/ 29 марта 2010

На стороне клиента у меня есть следующее назначение списка объектов в сетку данных:

        var customerContext = new RiaTestCustomDomainContext();
        CustomerGrid.ItemsSource = customerContext.Customers;
        customerContext.Load(customerContext.GetCustomersQuery());

Это хорошо работает, но мне бы хотелось иметь тот же список объектов в отдельной коллекции и использовать его для других объектов.

Когда я пытался вставить customerContext.Customers в список, у меня появляется ошибка:

Невозможно неявно преобразовать тип 'System.Windows.Ria.EntitySet' в 'System.Collections.ObjectModel.ObservableCollection'

Вот код, который я пытался скомпилировать:

        var customerContext = new RiaTestCustomDomainContext();
        ObservableCollection<Customer> customers = customerContext.Customers;

Не могли бы вы сообщить, как я могу получить данные в коллекцию List <>?

Спасибо.

1 Ответ

1 голос
/ 28 мая 2010

Предполагается, что вы работаете с кодом или моделью представления, прикрепленной к вашей презентации XAML.

Убедитесь, что System.Linq находится в вашем списке использования.

public class XXX
{
  private CustomerContext _context;

  private List<Customer> _customers;

  public XXX()
  {
    _customers = new List<Customer>();
    LoadData();
  }

  public void LoadData()
  {
    LoadOperation<Customer> loader = _context.Load<Customer>( _context.GetCustomerQuery() );
    loader.Completed += (s,e) =>
      {
        _customers = (s as LoadOperation<Customer>).Entities.ToList();
      };
  }
}

Помните, что вы запускаете асинхронный запрос с CustomerContext. Событие Completed вернется впоследствии (надеюсь) к вашим клиентам.

...