我有一个 Web 应用程序,在其中显示项目列表 (listItem)。我为每个元素分配了它的文本和一个值。
我可以使用 SelectedValue 检索值。
我现在将此网页构建为 WFA,到目前为止,我只能将文本分配给每个组合框项目。
我想为其添加一个值(这将是数据库中的一个 id),因此我可以使用该值来有效地更新/删除等。
你们会怎么做呢?
谢谢
您习惯的属性在 Winforms 中不存在,但由于ComboBox
需要一个对象,您可以使用您需要的属性创建自己的自定义类。我以ListControl.DisplayMember 属性上的 MSDN 文档为例进行了修改。
它所做的是创建一个customComboBoxItem
用 aText
和一个Value
Property 调用的自定义类,然后我创建一个 List 并将其分配为DataSource
您ComboBox
将Text
Property 分配为 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; }
}
}