如何在列表中编写 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&lt;string&gt;().ToList(); 移动到将字符串添加到ListBox 后调用的方法。【参考方案2】:

您可以使用Items 属性检查 ListBox 的项目。此外,您可以使用绑定数据检查ItemsSource 属性。 您尝试使用DataContext 属性,但DataContextItemsSource 完全不同。如果要查看 ListBox 的 Items,请使用 ItemsItemsSource

【讨论】:

以上是关于如何在列表中编写 ListBox 项? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何禁用 PrimeReact ListBox 中的列表项之一?

如何为ListBox的每个项添加“删除”按钮并实现其功能?

WinForms ListBox 控件上的多行列表项?

Access VBA Listbox.Requery 命令清除列表项

从 tkinter.Listbox 中提取项目列表

如何将ListBox绑定到返回键以关闭窗口