0

J'ai une demande mis en place avec RIA Services, Entity Framework 4 et Silverlight 4. Il est mis en place dans le mode prescrit sur MSDN ici: Walkthrough: Creating a RIA Services SolutionComment puis-je recevoir des notifications d'un appel RIA Services asynchrone?

Du côté client, ce code charge les entités clientes en la ItemsSource de grille:

public MainPage() 
    { 
     InitializeComponent(); 

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

L'appel à "loadOp.Entities" se fait de manière asynchrone (automatiquement par RIA services). Comment puis-je recevoir une notification lorsque l'appel asynchrone est terminé?

Répondre

2

Vous devez utiliser un rappel. Je n'ai pas encore utilisé la version officielle de RIA, mais dans la version bêta, c'était comme ça.

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

Merci, ce que je cherchais. Un argument supplémentaire est requis pour Load dans la version validée des services RIA, par ex. this._customerContext.Load (this._customerContext.GetCustomersQuery(), MyCallback, null); – sparks

+0

Ouais j'ai oublié l'argument 'objectState'. C'est un argument assez standard sur les appels asynchrones dans tout .NET. – Stephan