Accueil > Non classé > Parcourir un Datagrid et sauvegarde des données (Silverlight 5 + Service Web)…

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
            //IList rows = _viewModel.GetRows(dgAffectation);
            _viewModel.GetRows(dgAffectation);
        }


Méthode GetRows :

  public  IList GetRows(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;
            }
        }

Loading

Categories: Non classé Tags:
  1. Pas encore de commentaire
  1. Pas encore de trackbacks


seven + = 13