我想將索引屬性綁定到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);
但它不起作用。
是否可以綁定索引屬性而不是簡單屬性?怎麼樣?