C# 如何在编辑时在Windows应用程序中显示基于组合框选择的控件?

C# 如何在编辑时在Windows应用程序中显示基于组合框选择的控件?,c#,winforms,C#,Winforms,我正在使用Windows应用程序,并为添加和编辑模式创建了一个表单。问题在于添加,它工作正常,但在编辑时,控件不会基于组合框选择显示。根据我的组合框选择更改事件,我已隐藏控件。但我的组合框没有选择值,也没有触发更改事件。代码是: //Edit Mode public CompanyAddEdit(MainForm form, string id) { InitializeComponent(); passedForm = form; var cmbLis

我正在使用Windows应用程序,并为添加和编辑模式创建了一个表单。问题在于添加,它工作正常,但在编辑时,控件不会基于组合框选择显示。根据我的组合框选择更改事件,我已隐藏控件。但我的组合框没有选择值,也没有触发更改事件。代码是:

//Edit Mode        

public CompanyAddEdit(MainForm form, string id)
{
    InitializeComponent();
    passedForm = form;
    var cmbList = BindCompanyType();
    isEdit = true;
    xmlDocPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Companies.xml");
    xDocument = XDocument.Load(xmlDocPath);
    Id = Convert.ToInt32(id);
    XElement company = xDocument.Descendants("Company").FirstOrDefault(p => p.Element("Id").Value == Id.ToString());

    if (company != null)
    {
        var type = company.Element("DataSourceType").Value;
        cmbbx_companyType.SelectedItem = type;
    }
}
我正在使用此方法绑定Combobox:

private Array BindCompanyType()
{
    var companyTypeList = Enum.GetValues(typeof(CompanyType));
    cmbbx_companyType.DataSource = companyTypeList;           
    return companyTypeList;
}
我怎样才能解决这个问题?
任何帮助都将不胜感激

因此,您已使用类型为
CompanyType
enum的项填充组合框。因此,所选项目也应该是相同的类型。希望您从
company.Element(“DataSourceType”).Value获得一个字符串以便您可以按如下方式修改代码:

cmbbx_companyType.SelectedItem = Enum.Parse(typeof(CompanyType),type);        

请尝试一下,让我知道它是否解决了问题。

您调试了代码吗?事件是否正确触发?并执行了代码?是的,我已经调试过了,但是当我设置“cmbbx_companyType.SelectedItem=type;”在此之后,选择更改事件不会触发。如果您可以显示您的UI,那就太好了。我无法理解您实际想要做什么。是的,可以肯定,问题是“cmbbx_companyType.SelectedItem=type;”这并没有改变combobox的值。@SrustiThakkar:我认为问题在于combobox的绑定,您是如何填充combobox项的?