【问题标题】:Safe List to Textfile and read it with json文本文件的安全列表并使用 json 读取
【发布时间】:2020-10-18 20:28:22
【问题描述】:

我试图在 Visual Studio 的列表视图中显示一个列表,该列表首先被序列化,然后被反序列化。一切正常,但我的问题是列表以一种非常奇怪的格式显示,您可以在下图中看到它。

到目前为止,这是我的代码:

        private void SaveButton_Click(object sender, RoutedEventArgs e)
    {

        KalenderClass k1 = new KalenderClass();
        k1.termin = TerminTextbox.Text;
        k1.datum = DatePicker1.Date;
        k1.person = PersonTextbox.Text;
        kList.Add(k1);
        SaveData(kList);
        
    }

    private async void SaveData(List<KalenderClass> kList)
    {
        StorageFolder ordner = ApplicationData.Current.LocalFolder;
        StorageFile datei = await ordner.CreateFileAsync("Kalender.txt", CreationCollisionOption.OpenIfExists);
        await FileIO.WriteTextAsync(datei, JsonConvert.SerializeObject(kList));
        showDialog("Daten wurden in Datei geschrieben");


    }

    private async void ReadButton_Click(object sender, RoutedEventArgs e)
    {
        StorageFolder ordner = Windows.Storage.ApplicationData.Current.LocalFolder;
        string path = ordner.Path;
        StorageFile datei = await ordner.GetFileAsync("Kalender.txt");
        string inhalt = await FileIO.ReadTextAsync(datei);
        var k = JsonConvert.DeserializeObject(inhalt);
        TerminListview.Items.Add(k);
    }

我不想将整个 List k 添加到列表视图中,而只是添加新对象。 这是它的显示方式:

我希望它是一种格式,例如: 第一站: 日期: 人:

希望大家能帮帮我

【问题讨论】:

  • 在添加前尝试删除:TerminListview.Clear()
  • 谢谢!是否有通过点击删除项目的选项?

标签: c# json uwp


【解决方案1】:

从以下位置更改 CreationCollisionOption:

CreationCollisionOption.OpenIfExists

收件人:

CreationCollisionOption.ReplaceExisting

或者您可以刷新 SaveButton_Click 方法中的列表,如下所示:

private void SaveButton_Click(object sender, RoutedEventArgs e)
{
    kList = new List<KalenderClass>(); // <== This line will reset the list
    KalenderClass k1 = new KalenderClass();
    k1.termin = TerminTextbox.Text;
    k1.datum = DatePicker1.Date;
    k1.person = PersonTextbox.Text;
    kList.Add(k1);
    SaveData(kList);
}

【讨论】:

  • 非常感谢!您的编辑帮助了我。你知道是否有办法以其他方式甚至以某种格式显示列表?
  • @Chrizzy,如果您的意思是向用户显示它,是的,有很多方法可以显示任何数据或列表,但这取决于程序的目的,以及用户对您的应用程序的期望.另一方面,学习如何在 C# 中使用 LINQ 操作数据非常有用,这可能是你想在 C# 中学习的最重要的东西之一。
  • 你有任何链接或教程吗?
  • 可以从这个入手,很好的教程:youtube.com/watch?v=yClSNQdVD7g,
猜你喜欢
  • 1970-01-01
  • 2016-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-01
  • 2020-07-05
  • 2016-09-21
相关资源
最近更新 更多