首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Properties.Settings不保存列表视图项

Properties.Settings不保存列表视图项
EN

Stack Overflow用户
提问于 2021-03-23 07:32:54
回答 1查看 95关注 0票数 0

嘿,我正在研究一个软件解决方案,我在我的程序中有一个列表视图,我想保存它。

代码语言:javascript
复制
var listview = new List<string>();
    foreach (ListViewItem Item in listView1.Items)
    {
       listview.Add(Item.Text.ToString());
    }
StringCollection collection = new StringCollection();
Properties.Settings.Default.ListViewItems = collection;
Properties.Settings.Default.Save();

我试着用设置保存它,但是当我试图调用它时,值是空的。

但是,当我试图装载我的桌子时,我不能这样做。当我打电话给我的桌子时,它不是这样工作的。

代码语言:javascript
复制
var collection = Properties.Settings.Default.ListViewItems;
    if (collection != null)
    {
        List<string> list = collection.Cast<string>().ToList();
        foreach (var item in list)
        {
            listView1.Items.Add(item);
        }
    }
    else
    {
        MessageBox.Show("null");
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-23 07:38:11

因此,您在listView1.Items中有项,并且希望将它们保存到WinForms Settings系统中。

照这样做:

代码语言:javascript
复制
var settings = Properties.Settings.Default;
if( settings.ListViewItems is null ) settings.ListViewItems = new StringCollection();
foreach( ListViewItem lvi in listView1.Items )
{
    settings.ListViewItems.Add( lvi.Text );
}
settings.Save();

令人烦恼的是,StringCollection类型有一个名为AddRange的方法,但它只接受String[]而不是IEnumerable<String>,而.NET没有为非泛型IList提供股票AddRange方法。因此,我建议您避免使用Settings系统,因为它是弱类型的,不适合现代C#生态系统,比如对Linq的支持。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66758940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档