0

我有一个 Web 应用程序,在其中显示项目列表 (listItem)。我为每个元素分配了它的文本和一个值。

我可以使用 SelectedValue 检索值。

我现在将此网页构建为 WFA,到目前为止,我只能将文本分配给每个组合框项目。

我想为其添加一个值(这将是数据库中的一个 id),因此我可以使用该值来有效地更新/删除等。

你们会怎么做呢?

谢谢

4

1 回答 1

0

您习惯的属性在 Winforms 中不存在,但由于ComboBox需要一个对象,您可以使用您需要的属性创建自己的自定义类。我以ListControl.DisplayMember 属性上的 MSDN 文档为例进行了修改。

它所做的是创建一个customComboBoxItem用 aText和一个ValueProperty 调用的自定义类,然后我创建一个 List 并将其分配为DataSourceComboBoxTextProperty 分配为 DisplayMember 的那个。看看这对你是否可行。

public partial class Form1 : Form
{
    List<customComboBoxItem> customItem = new List<customComboBoxItem>();

    public Form1()
    {
        InitializeComponent();
        customItem.Add(new customComboBoxItem("text1", "id1"));
        customItem.Add(new customComboBoxItem("text2", "id2"));
        customItem.Add(new customComboBoxItem("text3", "id3"));
        customItem.Add(new customComboBoxItem("text4", "id4"));
        comboBox1.DataSource = customItem;
        comboBox1.DisplayMember = "Text";
        comboBox1.ValueMember = "Value";

    }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        MessageBox.Show( ((customComboBoxItem)comboBox1.SelectedItem).Text + " " 
                         + ((customComboBoxItem)comboBox1.SelectedItem).Value); 
    }
}

public class customComboBoxItem
{
    private string text;
    private string value;

    public customComboBoxItem(string strText, string strValue)
    {
        this.text = strText;
        this.value = strValue;

    }

    public string Text
    {
        get { return text; }
    }

    public string Value
    {
        get { return value; }
    }

}
于 2013-09-30T01:53:06.433 回答