Risolto C# Salvare in XML il contenuto del ComboBox.

Pacifico437

Utente Gold
27 Aprile 2012
192
91
8
205
Gent.mi,

come da titolo, trovo difficoltà a salvare il contenuto del ConboBox, riporto il codice:
Codice:
string[] elementi_passati = System.IO.Directory.GetFiles(Application.StartupPath + @"\Documenti\");
XDocument documento_xml = new XDocument(new XElement("contatto",
    new XElement("ComboBox.SelectedItem", ComboBox.SelectedItem)
     ));
int id_file;
id_file = 1;
while (System.IO.File.Exists(Application.StartupPath + id_file + ".xml") == true)
{
    id_file++;
}
documento_xml.Save(Application.StartupPath + @"\Documenti\" + id_file + ".xml");
Il salvataggio avviene 1.XML senza dati, se gentilmente potete suggerire modificando il codice.

Anticipatamente ringrazio fiducioso, saluto.
Domenico.
("Registrazione effettuata");
 
Ciao! ComboBox.SelectedItem restituisce un object generico non convertibile in String nel file XML. Dovresti risolvere usando ComboBox.SelectedItem.ToString()
 
Gent.mo Not an engineer,

ringrazio della disponibilità e gentilezza, non funziona l'errore è:
Riferimento a un oggetto non impostato su un'istanza di Oggetto.

Domenico
 
Questo errore (probabilmente) succede perchè' nessuno elem è selezionato nella ComboBox quando avviene il salvataggio. Per evitare questo problema è sempre buona prassi controllare che ComboBox non sia null prima di invocare .ToString()

Ti mando la mia versione del codice, spero che la sintassi sia ok (non uso spesso C#) e di aver capito cosa vuoi fare.

C#:
// Percorso completo alla cartella "DOCUMENTI"
string documentiPath = Path.Combine(Application.StartupPath, "DOCUMENTI");

// Verifica esistenza cartella "DOCUMENTI" ed eventuale creazione della stessa
if (!Directory.Exists(documentiPath))
{
    Directory.CreateDirectory(documentiPath);
}

// Verifica selezione elem nella ComboBox
string valoreComboBox = ComboBox.SelectedItem != null
    ? ComboBox.SelectedItem.ToString()
    : "Nessuna selezione";

// Creazione file XML con selezione del valore
XDocument documento_xml = new XDocument(
    new XElement("CONTATTO",
        new XElement("valoreComboBox", valoreComboBox)
    )
);

// Ricerca di un nome del file disponibile nella cartella "DOCUMENTI"
int id_file = 1;
string filePath;
do
{
    filePath = Path.Combine(documentiPath, id_file + ".xml");
    id_file++;
} while (File.Exists(filePath));

documento_xml.Save(filePath);
 
Indietro
Top Bottom