Je crée une page principale silverlight detials et je n'arrive pas à mettre à jour la grille de données après avoir inséré un nouvel enregistrement. En haut de la page j'ai des zones de texte pour entrer des informations, quand un utilisateur clique sur enregistrer je voudrais que l'information soit automatiquement mise à jour dans la base de données et affichée sur la grille de données sans actualiser l'écran.Je ne parviens pas à actualiser/mettre à jour la grille de données après insertion dans Silverlight 4
Je suis en mesure d'enregistrer les informations sur le db sans problème sa juste essayer d'obtenir le DataGrid pour se rafraîchir avec les nouveaux changements.
Certains de mon code derrière le bouton SAVE est ci-dessous:
ViewModel.UpdateWorkflow(summary, reason, Email);
LoadOperation<Document> lo = _Context.Load<Document>(_Context.GetDocumentsQuery(_DocID), rtRefresh, null);
Le code pour rtRefresh:
private void rtRefresh(LoadOperation<Document> oLoadOperation)
{
if (oLoadOperation.IsComplete)
{
ViewModel.GetDocuments(_DocID);
}
}
Je mis le ViewModel dans le fichier XAML comme:
<controls:ChildWindow.Resources>
<viewModel:DocumentChildWindowViewModel x:Key="ViewModel" />
</controls:ChildWindow.Resources>
Et le ViewModel dans le code-behind:
ViewModel = Resources["ViewModel"] as DocumentChildWindowViewModel;
Toute aide serait appréciée, merci.
Est-ce juste une question de changer le GetDocumentsQuery() de IEnumerable <> en ObservableCollection <> ?? Ou est-ce plus impliqué que cela? – GPB
Je voudrais vous voir XAML et viewModel pour pouvoir y répondre.Votre grille de données doit avoir une ItemsSource liée à une ObservableCollection <> sur votre viewModel. Lorsque vous récupérez les données à partir de GetDocumentsQuery(), vous devez l'affecter à ObservableCollection sur votre viewModel. Cela a-t-il du sens? – JSprang
Voir les modifications pour répondre pour voir un exemple simple. – JSprang