我想将索引属性绑定到JFace ComboViewer。如何将索引属性绑定到jface查看器
比方说,我有一个DataModel的阶级是这样的:
class DataModel {
private String[] props = {"A","B","C"};
private PropertyChangeSupport pcs = new PropertyChangeSupport(this);
public String getProperties(int idx){
return props[idx];
}
public void setProperties(int idx, String value){
String oldVal = props[idx];
props[idx] = value;
pcs.fireIndexedPropertyChange("properties", idx, oldVal, value);
}
// code to add/remove PropertyChangeListener
// ...
}
的数据进行简单的属性绑定代码应该是这样的:
DataModel dataModel = ...
ComboViewer propertyChoice = ...
DataBindingContext ctx = new DataBindingContext();
IObservableValue target = ViewerProperties.singleSelection().observe(propertyChoice);
IObservableValue model = BeanProperties.value(DataModel.class, "properties").observe(dataModel);
ctx.bindValue(target, model);
但有一个索引属性我不得不通知索引是我想要绑定的值的ctx。我试过
IObservableValue model = BeanProperties.value(DataModel.class, "properties[0]").observe(dataModel);
但它不起作用。
是否可以绑定索引属性而不是简单属性?怎么样?