正在将ObservableCollection保存到文件(.txt)中
本文关键字:txt 存到文件 ObservableCollection | 更新日期: 2023-09-27 18:00:31
对我来说,将我在列表视图中显示的数据的observableCollection保存到文件(.txt)的最佳方式是什么。当我没有observableCollections和下面显示的绑定数据时,我就让它工作了,为此我只使用了一个字符串生成器。从下面的代码中,我如何保存"进程名称"
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>
用于工作的Stringbuilder
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; }
}
任何反馈都很好,
感谢
Martin
您可以为ObservableCollection执行类似的foreach
循环。
System.Text.StringBuilder sb = new System.Text.StringBuilder();
foreach (StatisticsData item in StatisticsCollection)
{
sb.AppendLine(item.ToString());
}
根据您对"_StatisticsCollection"的命名,我假设您将其保存为字段变量?如果是这样,只需迭代它,并将"ProcessName"属性写入文件/StringBuilder。或者,使用Linq.Enumerable扩展方法"Cast"将项迭代为"StatisticsData":foreach(listView1.items.Cast中的var项)。同样,它是您想要写出的属性"ProcessName"。
不要使用任何临时变量,这是不必要的。直接写入文件:
using (var writer = new StreamWriter("text.txt"))
{
foreach (StatisticsData item in StatisticsCollection)
{
writer.WriteLine(item.ToString());
}
}