Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可以在组合框中动态添加项目,并且用户添加的项目应该是永久性的,而不使用数据库吗?_C#_.net_Windows_Dynamic_Combobox - Fatal编程技术网

C# 可以在组合框中动态添加项目,并且用户添加的项目应该是永久性的,而不使用数据库吗?

C# 可以在组合框中动态添加项目,并且用户添加的项目应该是永久性的,而不使用数据库吗?,c#,.net,windows,dynamic,combobox,C#,.net,Windows,Dynamic,Combobox,我们能否在窗口窗体上的组合框中动态添加项目?就像窗口窗体上有7个组合框一样,当应用程序运行时,用户应该能够在组合框中添加项目。并且用户添加的项目应该是组合框中的永久项目。当然,只需使用项目集合: comboBox1.Items.Add(...); 它们是永久性的,直到组合框停止存在。如果您想通过关闭应用程序或关闭表单来保留这些项目,那么您需要自己完成 您还可以使用ItemsSource属性将组合框绑定到保存在其他位置的集合。但是您仍然需要根据需要保存和加载集合内容 您可能需要详细说明您的期望和

我们能否在窗口窗体上的组合框中动态添加项目?就像窗口窗体上有7个组合框一样,当应用程序运行时,用户应该能够在组合框中添加项目。并且用户添加的项目应该是组合框中的永久项目。

当然,只需使用
项目
集合:

comboBox1.Items.Add(...);
它们是永久性的,直到组合框停止存在。如果您想通过关闭应用程序或关闭表单来保留这些项目,那么您需要自己完成

您还可以使用
ItemsSource
属性将组合框绑定到保存在其他位置的集合。但是您仍然需要根据需要保存和加载集合内容


您可能需要详细说明您的期望和需要。

如果默认情况下使用ASP.NET,则项目将保留在viewstate中,并且所选项目将保留在回发之间。您只需加载组合框一次。

第一句话中有“窗口窗体”,所以我假设是Windows窗体。当然,这不是最好的启发,但可能仍然是正确的:-)是的,窗口窗体上有combobox。我完全误解了需要使用数据库的问题。@James Westgate,不使用数据库是不可能的吗?因为在我的应用程序中并没有数据库,所以我必须建立连接并维护数据库。因此,任何其他显示项目的控件,我们都可以在该控件中动态添加项目,这应该是永久的?我会将数据存储在您手动创建的数据集中。将组合框绑定到数据集。使用DataSet.WriteXml将内容写入磁盘。您还需要保留所选索引的大头钉。将其写入用户的“文档”文件夹,以便每个用户都有自己的版本。@Johanes Rossel,我已经在运行时添加了项,如
combobox1.items.add(combobox1.Text)但当我第二次运行应用程序时,该项不会保持永久性。@哈尔:当然不会。这就是为什么我说你需要自己去做。组合框只是一个显示一些数据的控件。数据从何而来或流向何处取决于作为开发人员的您。如果要将其保存到磁盘,然后在再次启动应用程序后重新加载,则必须编写代码来执行此操作。@Johanes Rossel,哪种类型的代码?或者满足我这个需求的任何其他控件?你说的“哪种类型的代码”是什么意思。您需要编写一些代码来持久化数据。。。到平面文件,到XML,到某个数据库。。。那种类型的代码。。。如前所述,combobox只是一个控件,它所保存的数据仅在内存中,内存不是永久性存储,因此您必须将数据保存在某个位置…@har:在窗体关闭时(或添加后立即)将其写入文件。或者将其包装到从
组合框
派生的自定义控件中,该控件会自动执行此操作。或者使用自定义集合作为数据源,它会自动执行此操作。根据您的具体需要和要求,有几种可能性。