【问题标题】:Saving ObservableCollection to file (.txt)将 ObservableCollection 保存到文件 (.txt)
【发布时间】:2011-06-24 14:10:55
【问题描述】:

对我来说,将我在列表视图中显示的 observableCollection 数据保存到文件 (.txt) 的最佳方式是什么?当我没有 observableCollection 和下面显示的绑定数据时,我让它工作,为此我只是使用了一个字符串生成器。从下面的代码中如何保存“进程名称”

XAML 代码

<ListView Height="146"  ScrollBar.Scroll="listView1_Scroll" ItemsSource="{Binding StatisticsCollection}">   <ListView.View>
   <GridView >
      <GridViewColumn Header="Process Name" Width="80" DisplayMemberBinding="{Binding ProcessName}" />
   </GridView>
</Listview.View>

用于工作的字符串生成器

System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (object item in listView1.Items)
{
    sb.AppendLine(item.ToString());
}

声明

 ObservableCollection<StatisticsData> _StatisticsCollection =
    new ObservableCollection<StatisticsData>();

    public ObservableCollection<StatisticsData> StatisticsCollection
    {
        get { return _StatisticsCollection; }
    }

任何反馈都会很棒,

谢谢

马丁

【问题讨论】:

    标签: c# .net wpf save observablecollection


    【解决方案1】:

    您可以为 ObservableCollection 执行类似的 foreach 循环。

        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        foreach (StatisticsData item in StatisticsCollection)
        {
    
            sb.AppendLine(item.ToString());
    
        }
    

    【讨论】:

    • 我打开时得到的输出是'MemoryMonitor.MainWindow+StatisticsData'。
    • @carsey88 而不是 item.ToString() 尝试 item.ProcessName 如果这是您要写入文件的每个项目的属性。
    • 使用了 item.ProcessName.Tostring()。非常感谢,快把我逼疯了
    【解决方案2】:

    根据您对“_StatisticsCollection”的命名,我假设您将其保存为字段变量?如果是这样,只需迭代它,并将“ProcessName”属性写入文件/StringBuilder。或者,使用 Linq.Enumerable 扩展方法“Cast”将项目迭代为“StatisticsData”:foreach(listView1.Items.Cast 中的var item)。同样,它是您想要写出的属性“ProcessName”。

    【讨论】:

      【解决方案3】:

      不要使用任何临时变量,这是不必要的。直接写入文件:

      using (var writer = new StreamWriter("text.txt"))
      {
          foreach (StatisticsData item in StatisticsCollection)
          {
              writer.WriteLine(item.ToString());
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-13
        • 1970-01-01
        • 2018-12-15
        相关资源
        最近更新 更多