Frage

Ich bin neu im Programmieren und stehe vor einigen Schwierigkeiten.Ich hoffe, die von mir generierten Daten (ein WPF) zu speichern DataGrid) in eine Textdatei.

Folgendes habe ich derzeit:

MainWindow.xaml.cs:

private void SaveButton_Click(object sender, RoutedEventArgs e)
{
    string fileName = @"D:\projects\PersonInfos\Files\PersonInfos_Copy.txt";
    PersonInfosTable.ConvertToTXTFile(fileName);
}

PersonInfosTable.cs:

public void ConvertToTXTFile(string fileName)
{
    StringBuilder sb = new StringBuilder();
    System.Text.Encoding Output = null;
    Output = System.Text.Encoding.Default;

    foreach (PersonInfos personinfos in PersonInfoDetails)
    {
        if (PersonInfos.SelectCheckBox == true)
        {
            string line = String.Format("L§" + personinfos.FirstName + "§" + personinfos.LastName + "§");
            sb.AppendLine(line);

            StreamWriter file = new StreamWriter(fileName);
            file.WriteLine(sb);

            file.Close();
        }
    }
}

Leider funktioniert das nicht. PersonInfosDetails ist vom Typ ObservationCollections<T> Und SelectCheckBox ist das vom Benutzer ausgewählte Kontrollkästchen und gibt an, welche Dateien der Benutzer speichern möchte.

Irgendwelche Ideen oder Vorschläge?Ich würde mich sehr über Ihre Hilfe freuen und danke Ihnen vielmals für Ihre Zeit!

War es hilfreich?

Lösung

Es ist nicht klar, was die SelectCheckBox-Eigenschaft ist.Allerdings müssen Sie den schreibenden Teil Ihres Programms außerhalb der Schleife verschieben.Fügen Sie innerhalb der Schleife einfach alle Personeninformationen zu Ihrer StringBuilder-Instanz hinzu.

 public void ConvertToTXTFile(string fileName)
 {
     StringBuilder sb = new StringBuilder();
     System.Text.Encoding Output = System.Text.Encoding.Default;
     foreach (PersonInfos personinfos in PersonInfoDetails)
     {
         // Collect every personinfos selected in the stringbuilder
         if (personinfos.SelectCheckBox == true)
         {
            string line = String.Format("L§" + personinfos.FirstName + "§" + personinfos.LastName + "§");
            sb.AppendLine(line);
         }
     }

     // Now write the content of the StringBuilder all together to the output file
     File.WriteAllText(filename, sb.ToString())
}

Andere Tipps

Hast du es versucht Wie man:In eine Textdatei schreiben (C#-Programmierhandbuch)?

Außerdem funktioniert der von Ihnen angegebene Code nur, wenn SelectCheckBox ist eine statische Eigenschaft von PersonInfos Klasse.Du wirst wahrscheinlich das ändern müssen if Aussage zu

if (personInfos.SelectCheckBox == true)
{
    // ...
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top