C# 加载表单时更新组合框

C# 加载表单时更新组合框,c#,winforms,combobox,C#,Winforms,Combobox,大家好我知道有人问过这样的问题但不是同一个 在我的例子中,我使用WinForms和Entity framework 6,有一个包含一些对象的数据网格,当我双击其中一行时,我将加载一个包含该对象所有信息的新窗口, 在该窗口中,我有两个绑定到数据库的组合框,在加载过程中,我无法使用我想要的值更新它们,例如: cbJobType.SelectedIndex = ActiveJob.JobTypesID; 在加载过程中,该组合中仍有0项 我考虑做一些缓存来存储作业类型信息,然后从那里加载它 你能为这种

大家好我知道有人问过这样的问题但不是同一个

在我的例子中,我使用WinForms和Entity framework 6,有一个包含一些对象的数据网格,当我双击其中一行时,我将加载一个包含该对象所有信息的新窗口, 在该窗口中,我有两个绑定到数据库的组合框,在加载过程中,我无法使用我想要的值更新它们,例如:

cbJobType.SelectedIndex = ActiveJob.JobTypesID;
在加载过程中,该组合中仍有0项

我考虑做一些缓存来存储作业类型信息,然后从那里加载它

你能为这种情况提出更好的方法或最佳做法吗


谢谢

您可以使用属性。设置:

您可以在MSDN中找到详细信息,要访问设置中的数据,只需使用:

YourCombo.ItemSource = Properties.Settings.Default.Paths; //just an example
更新:您可以通过编程方式更新源:

Properties.Settings.Default.Paths.Add("First");
Properties.Settings.Default.Paths.Add("Second");
或者,您可以循环从数据库获得的值:

foreach(var someValue from someDataSource)
   Properties.Settings.Default.Paths.Add(someValue);

当新窗口打开时,是否分配组合框的itemssource?您将首先加载组合框的itemssource,然后只有您可以选择一个值,请检查您设置cbJobType的itemssource的加载逻辑。在Datasource属性中。它不可能为您提供一些有用的提示-显示如何将数据加载到组合框的代码以及如何打开新窗口的代码。不可能?为什么,@David已经这么做了。这些值是从数据库中获取的,它是动态的。您可以添加或删除它们,只需在初始化之前对其进行初始化,Properties.Settings.Default.JobTypes=new System.Collections.Specialized.StringCollection;