是否可以为ListSelect组件使用自定义转换器? 这就是我试过的:
ListSelect ls = new ListSelect();
ls.setConverter((Converter) new MyCustomConverter());
ObjectToDisplay ots = new ObjectToDisplay();
// ls.setConvertedValue(ots ); // Converter is called but ListSelect stays empty
lsConstruction.addItem(ots ); // Did not work
但是,ListSelect在添加值后保持为空。
感谢您的帮助!
答案 0 :(得分:1)
使用setItemCaption()
:
final ListSelect ls = new ListSelect ();
final BeanItemContainer<ObjectToDisplay> container = new BeanItemContainer<>(ObjectToDisplay.class, objectList);
ls.setContainerDataSource(container);
for (final ObjectToDisplay o : objectList){
ls.setItemCaption(o, yourDesiredFormatFunction(o));
}
使用container.addItem(object)
以编程方式添加对象。
关于转换器的使用:this post详细说明了与AbstractSelect实现(如ListSelect和ComboBoxes)一起使用的转换器。