Parcourir un Datagrid et sauvegarde des données (Silverlight 5 + Service Web)…
Bonjour.
Nous verrons comment parcourir un Datagrid et sauvegarder les données tout en maintenant le busy actif lors de la sauvegarde.
Soit la méthode btnOK_Click appelée lors d’un clic sur un bouton du formulaire :
private void btnOK_Click(object sender, RoutedEventArgs e) { // on lance la sauvegarde des données //IListrows = _viewModel.GetRows(dgAffectation); _viewModel.GetRows(dgAffectation); }
Méthode GetRows :
public IListGetRows(DataGrid grid) { List rows = new List (); foreach (var rowItem in grid.ItemsSource) { Save(rowItem as AffectationNum); // Se rassurer que toutes les lignes sont parcourues. grid.ScrollIntoView(rowItem, grid.Columns.Last()); // Obtenir la valeur de la cellule. FrameworkElement el = grid.Columns.Last().GetCellContent(rowItem); // Extraire la rangée parent de l'élément donné. DataGridRow row = DataGridRow.GetRowContainingElement(el.Parent as FrameworkElement); // Certaines lignes peuvent être nulles. if (row != null) rows.Add(row); } return rows; }
Méthode Save
Terminons avec la méthode Save
public void Save(AffectationNum affectNumber) { // on sauvegarde les données dans la base de données // on appelle le web service try { // on active le busy Model.IsBusy = true; // on se connecte au webservice CommonServiceClient webServ = WcfHelper.CreateCommonClient(); // on appelle le webService webServ.UpdateCompleted += new EventHandler(webServ_UpdateCompleted); webServ.UpdateAsync(new AffectCasse() { EmplID = affectCase.CaseID, EmplName = affectCase.CaseNom, FournisseurID = affectCase.FournisseurID, LogicielID = affectCase.LogicielID }); } catch (Exception ex) { // gestion des erreurs OnErrorOccured(ex); // fin du traitement Model.IsBusy = false; } }
Categories: Non classé
Commentaires récents