如何在列表中编写 ListBox 项? [关闭]
Posted
技术标签:
【中文标题】如何在列表中编写 ListBox 项? [关闭]【英文标题】:How can i write the ListBox Items in a List? [closed] 【发布时间】:2021-09-10 06:15:25 【问题描述】:我将 tbxFiles 作为 ListBox。和 path 作为字符串列表。现在我要做的是将所有列表框项目保存在我的字符串列表中。
我尝试了什么:
path.Add(tbxFiles.DataContext.ToString());
但这不起作用。我能做什么?
编辑
我用项目填充我的列表框:
foreach (string filename in openFileDialog.FileNames)
tbxFiles.Items.Add(System.IO.Path.GetFileName(filename));
path.Add(filename);
【问题讨论】:
如果不知道您的 ListBox 究竟长什么样,就无法真正回答这个问题。但是您问题的标题似乎表明您知道Items
属性,这是一个集合。你有没有想过遍历那个集合,把每个元素变成一个字符串,可能是通过 ToString(),然后将这些字符串添加到路径中?
我刚刚在我的 WPF 程序中放置了一个普通的列表框,并添加了项目:在编辑中
您了解我关于迭代 Items 集合的问题吗?作为说明,设置DataContext = this
似乎完全没有意义,至少在您的问题的上下文中。
我只是想尝试一下,忘记删除了。
【参考方案1】:
您可以提取tbxFiles.Items
中的strings
并将它们放入List<string>
中,如下所示:
List<string> paths = tbxFiles.Items.OfType<string>().ToList();
【讨论】:
但是我得到这个错误:缺陷 CS0236 字段初始化程序无法引用非静态字段或方法或属性 MainWindow.tbxFiles。 您需要将paths = tbxFiles.Items.OfType<string>().ToList();
移动到将字符串添加到ListBox
后调用的方法。【参考方案2】:
您可以使用Items
属性检查 ListBox 的项目。此外,您可以使用绑定数据检查ItemsSource
属性。
您尝试使用DataContext
属性,但DataContext
与ItemsSource
完全不同。如果要查看 ListBox 的 Items,请使用 Items
或 ItemsSource
。
【讨论】:
以上是关于如何在列表中编写 ListBox 项? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何禁用 PrimeReact ListBox 中的列表项之一?