Question

Je suis nouveau en programmation et face à de grandes difficultés.J'espère pour enregistrer les données, je suis de la génération (WPF DataGrid) dans un fichier texte.

C'est ce que j'ai actuellement:

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();
        }
    }
}

Malheureusement, cela ne fonctionne pas. PersonInfosDetails est de type ObservationCollections<T> et SelectCheckBox est la case à cocher sélectionnée par l'utilisateur, et indique les fichiers que l'utilisateur souhaite enregistrer.

Toutes les idées ou suggestions?Je te remercie de ton aide beaucoup et je vous remercie beaucoup pour votre temps!

Était-ce utile?

La solution

Il n'est pas clair quelle est la SelectCheckBox de la propriété.Cependant, vous avez besoin de déplacer l'écriture de la partie de votre programme à l'extérieur de la boucle.L'intérieur de la boucle juste ajouter chaque personne info à votre StringBuilder instance.

 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())
}

Autres conseils

Avez-vous essayé Comment:Écrire dans un Fichier Texte (Guide de Programmation C#)?

Aussi, le code que vous avez fourni ne fonctionne pas à moins que SelectCheckBox est une propriété statique de la PersonInfos classe.Vous aurez probablement à changer le if déclaration de

if (personInfos.SelectCheckBox == true)
{
    // ...
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top