RIA:如何拦截数据

时间:2010-03-28 21:44:44

标签: .net silverlight ria

在客户方面,我将以下对象分配给数据网格:

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

它运作良好,但我想在一个单独的集合中拥有相同的对象列表,并将其用于其他对象群。

当我尝试将customerContext.Customers推入List时,我遇到了错误:

  

无法隐式转换类型   'System.Windows.Ria.EntitySet'   至   'System.Collections.ObjectModel.ObservableCollection'

这是我尝试编译的代码:

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

您能告诉我如何将数据输入List&lt;&gt;集合?

感谢。

1 个答案:

答案 0 :(得分:1)

假设您正在处理后面的代码或附加到您的演示文稿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启动异步请求。随后(希望)您的客户将返回已完成的活动。