C#Winforms:根据所选项在ComboBox中设置文本

时间:2017-03-17 15:48:39

标签: c# winforms combobox

我是c#的新手,我现在正在学习如何根据某些表单操作触发事件。

这是观点的一部分:

private void comboGoodsName_TextChanged(object sender, EventArgs e)
{
    controller.selectName(comboGoodsName.Text);
}

public void nameChanged(object sender, MeasurementEventArgs e)
{
    comboGoodsName.TextChanged -= comboGoodsName_TextChanged;
    comboGoodsName.Text = e.value;
    comboGoodsName.TextChanged += comboGoodsName_TextChanged;
}

这是控制器的一部分:

public void selectName(string name)
{          
    model.Name = name.Split('|')[0].Trim();

    if (name.Contains(" | "))
    {
        string code = name.Split('|')[1].Trim();
        model.NameCode = code;
    }
}

情景如下:
我希望ComboBox中包含一些项目(无关紧要的是什么)。项目是名称和代码的组合,格式如下:NAME | CODE。当我在ComboBox中输入一些文字(输入)时,comboGoodsName_TextChanged会被触发,而selectName会调用设置模型属性的nameChanged,从而引发{{{}} {1}}。这可以正常工作(将NAME放在ComboBoxCODETextBox - 未显示为不相关)。从ComboBox下拉列表中选择项目时出现问题。当我选择项目时,我会看到NAME,而不是在ComboBox中显示NAME | CODE

编辑:在模型中,属性设置正确,我通过打印它的值来确认。因此,问题仅与在ComboBox中显示正确的值有关。

1 个答案:

答案 0 :(得分:1)

试试这个:

targetEntity