我有.net winforms ListBox,我使用.Add()添加了项目。我更改了列表中的一个对象,这样它的ToString()方法现在返回一个不同的值,但该项的显示值不会更新。我需要调用什么来告诉ListBox重新读取ToString值?
答案 0 :(得分:4)
如果将同一对象引用重新分配给同一列表框项,则列表框将刷新其显示值。 e.g:
Thingy thing = this.listBox1.Items[0];
thing.DoSomethingThatChangesToStringReturnValue();
this.listBox1.Items[0] = thing;
答案 1 :(得分:3)
由于您手动添加了项目,因此您需要清除列表框项目,然后重新添加它们。
当您使用.ToString()添加项目时,列表框只有字符串本身的副本 - 它无法知道项目已更改,或者它甚至基于项目。你必须自己处理这个问题。