2010-03-28 8 views
1

Du côté clien je l'assignement suivante de la liste des objets à un DataGrid:RIA: comment intercepter les données

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

Il fonctionne bien, mais je woudl aime avoir la même liste d'objets dans une collection séparée et l'utiliser pour la population d'autres objets.

Quand j'ai essayé de pousser customerContext.Customers dans la liste que j'ai une erreur:

Cannot implicitly convert type 'System.Windows.Ria.EntitySet' to 'System.Collections.ObjectModel.ObservableCollection'

Voici un code que j'ai essayé de compiler:

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

Pourriez-vous s'il vous plaît conseiller comment puis-je obtenir des données dans la liste <> collection?

Merci.

Répondre

1

En supposant que vous travaillez dans le code derrière ou un modèle de vue attaché à votre présentation XAML.

Assurez-vous que System.Linq figure dans votre liste d'utilisateurs.

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(); 
     }; 
    } 
} 

Rappelez-vous que vous commencez une demande async avec le CustomerContext. L'événement Terminé reviendra ensuite avec (espérons-le) vos clients.

Questions connexes