public ObservableCollection<Contenu_Retour_Chantier> PasteDataRetourChantierWindow() { if (Clipboard.ContainsText(TextDataFormat.Text)) { ObservableCollection<Contenu_Retour_Chantier> toReturn = new ObservableCollection<Contenu_Retour_Chantier>(); String data = Clipboard.GetText(); ObservableCollection<String> listLignes = new ObservableCollection<string>(data.Split('\n')); int nbLignes = 1; int ligneToIgnore = listLignes.Count(); foreach (String ligne in listLignes) { if (nbLignes != ligneToIgnore) { if (this.verifNombreColonnes(ligne, 4)) { ObservableCollection<String> listColonnes = new ObservableCollection<string>(ligne.Split('\t')); int i = 1; Contenu_Retour_Chantier toAdd = new Contenu_Retour_Chantier(); foreach (String colonne in listColonnes) { if (i == 1) { toAdd.Reference = colonne; } if (i == 2) { toAdd.Designation = colonne; } if (i == 3) { double val; if (double.TryParse(colonne.Replace(".", ","), out val)) { toAdd.Quantite = double.Parse(colonne.Replace(".", ",")); } else { MessageBox.Show("Le collage s'arrete car à la ligne n°" + nbLignes + ", vous essayez de rentrer une quantité qui n'est pas un chiffre", "Coller : erreur !", MessageBoxButton.OK, MessageBoxImage.Error); return null; } } if (i == 4) { double val; if (double.TryParse(colonne.Replace(".", ","), out val)) { toAdd.Prix = double.Parse(colonne.Replace(".", ",")); } else { MessageBox.Show("Le collage s'arrete car à la ligne n°" + nbLignes + ", vous essayez de rentrer un prix unitaire qui n'est pas un chiffre", "Coller : erreur !", MessageBoxButton.OK, MessageBoxImage.Error); return null; } } toReturn.Add(toAdd); i = i + 1; } nbLignes = nbLignes + 1; } else { MessageBox.Show("Le collage s'arrete car à la ligne n°" + nbLignes + ", le nombre de colonne n'est pas bon, il doit y en avoir 4 (Référence, désignation, Quantité, Prix unitaire).", "Coller : erreur !", MessageBoxButton.OK, MessageBoxImage.Error); return null; } } } return toReturn; } else { return null; } }
private void import() { if (this.retourChantierWindow != null) { foreach (ImportPourRetourChantier item in this._dataGridFournisseur.SelectedItems.OfType<ImportPourRetourChantier>()) { try { Contenu_Retour_Chantier newItem = new Contenu_Retour_Chantier(); newItem.Reference = item.Reference; newItem.Designation = item.Designation; newItem.Quantite = 1; newItem.Prix = item.PrixUnitaireRemise; ((Retour_Chantier)this.retourChantierWindow.DataContext).Contenu_Retour_Chantier.Add(newItem); } catch (Exception) { } } try { this.retourChantierWindow._dataGridContenu.Items.Refresh(); } catch (Exception) { } } }