我将 ArrayList() 绑定到 Listbox 控件,并为数组中的数据分配 Displaymember 和 Value。我的问题是我在启动时绑定但在几次函数调用后数组被填满。我在 selectedIndexChanged 上有代码来检查 selectedValue,但是如果 ArrayList 为空,它会返回一个对象,一旦它有数据,它就会返回我期望的字符串。我仍然很困惑为什么当列表没有数据时它会运行 selectedIndexChanged 。认为它可能会在我绑定 Displaymember 之后但在分配值之前运行:
lbCAT_USER.DataSource = USERS;
// Running here maybe?
lbCAT_USER.DisplayMember = "DisplayString";
// Or Here?
lbCAT_USER.ValueMember = "ID";
无论哪种方式,我当前的工作都是尝试/捕获将 SelectedValue 与字符串进行比较并尝试重新运行该函数。
简单的解决方法可能是在 if 语句之前检查数据类型的一种方法?任何建议的想法都可能非常有帮助。谢谢