如何将组合框列表和选择绑定到动态列表?

时间:2011-05-24 21:18:34

标签: c# winforms

假设我有一个字符串列表。除了列表之外,我还有一个int变量来表示这些字符串的选择。所以,假设该列表包含{“Option1”,“Option2”,“Option3”和“Option4”}。此列表可能会动态缩小或增长。 int变量可以是0,1,2或3.如果它是0,那么我想要选择“Option1”。如果它是1,那么我想要选择“Option2”等。我试过这样做:

m_ComboBox.DataSource = m_Configuration.StringList;
m_ComboBox.DataBindings.Add(new Binding("SelectedIndex", m_Configuration, "SelectionIndex"));

这看起来很危险,因为如果索引高于列表中的字符串数量,那么程序将崩溃,因为索引超出范围。我怎样才能防止这种情况发生?有没有更好的方法将组合框列表和选择绑定到动态列表?

另外,我想将进入的值转换为更加用户友好的格式,例如“选项1”,“选项2”等,而不是“Option1”,“Option2”......是否存在除了必须在每次值更改时手动执行字符串操作之外,还有一种简单的方法吗?有没有办法用IValueConverter做到这一点?

1 个答案:

答案 0 :(得分:1)

使用ComboBox.ValueMember属性将值绑定到每个组合框条目。然后使用ComboBox.SelectedValue检索它。

相关问题