0

У меня есть приложение, установить с RIA Services, Entity Framework 4 и Silverlight 4. Он устанавливается в моде, предписанной на MSDN здесь: Walkthrough: Creating a RIA Services SolutionКак получить уведомления от асинхронного вызова служб RIA?

На стороне клиента, этот код загружает объекты клиента в ItemsSource сетке в:

public MainPage() 
    { 
     InitializeComponent(); 

     LoadOperation<Customer> loadOp = this._customerContext.Load(this._customerContext.GetCustomersQuery()); 
     CustomerGrid.ItemsSource = loadOp.Entities; 
    } 

вызов "loadOp.Entities" выполняется асинхронно (автоматически RIA Services). Как получить уведомление при завершении асинхронного вызова?

ответ

2

Необходимо использовать обратный вызов. Я еще не использовал официальный релиз RIA, но в бета-версии это было так.

public MainPage() 
{ 
    InitializeComponent(); 

    LoadOperation<Customer> loadOp = this._customerContext.Load(this._customerContext.GetCustomersQuery(),MyCallback,null); 
    CustomerGrid.ItemsSource = loadOp.Entities; 
} 

private void MyCallback(LoadOperation<Customer> loadOperation) 
{ 
    //This will be called when the load is complete 
} 
+1

Спасибо, только что я искал. Существует дополнительный аргумент, требуемый для загрузки в выпущенной версии служб RIA, например. this._customerContext.Load (this._customerContext.GetCustomersQuery(), MyCallback, null); – sparks

+0

Да, я забыл аргумент 'objectState'. Это довольно стандартный аргумент для асинхронных вызовов во всех .NET. – Stephan