ListBox 的 Bug ??????
一直用WebControl中的类似于ListBox的控件开发ASP.Net程序,在其Items中只能添加ListItem类型的对象。挺方便。
前些天需要开发一个小的应用程序,用到了WinFrom的 ListBox 控件。看帮助发现它的 Items 中可以添加任意类型的对象,在显示时显示的文字是调用对象的 ToString 方法获取的。于是就根据实际需要编写了一个 ListItem 类,包含 Text 和 Value 属性和一个 ToString 方法。ToString 方法就一句:Return Me.Text,就是以 Text 属性的值做为显示的内容。程序运行时动态创建该类的实例,然后添加到 ListBox 的 Items 中,运行、显示一切正常。
但是在编辑的时候出现了问题:程序修改了 ListItem 的 Text 的值后,ListBox 的显示并没有改变,无论是调用 Refresh 方法还是 Update 方法都没有任何变化。我想肯定是一个BUG,后来仔细想想应该不是:ListBox 并不知道列表项已经改变,所以显示内容不会改变。那么是不是需要通知 ListBox 重新调用 ToString 方法呢?如果是,该怎么通知?