我用下面的代碼(一些細節省略)標籤的文本值綁定到我的後端模式:Eclipse RCP的數據綁定:標籤的文本進行更新,大小不
Model model = entry.getModel();
Control nameControl = formToolkit.createLabel(labelPanel, null);
IObservableValue modelValue = BeanProperties.value(model.getClass(), Model.PROPERTY_NAME).observe(model);
IObservableValue widgetValue = SWTObservables.observeText(nameControl);
DataBindingContext context = new DataBindingContext();
UpdateValueStrategy widgetToModel = new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER);
UpdateValueStrategy modelToWidget = new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE);
context.bindValue(widgetValue, modelValue, widgetToModel, modelToWidget);
當模型被改變,標籤的文本更新得當。但標籤不會調整大小。因此,當模型更改爲更長的名稱時,新名稱將被切斷。當它更改爲較短的名稱時,標籤佔用的空間比應該多。
我想添加一個屬性更改偵聽器(無論是模型名稱還是標籤文本),只要名稱被更改就會在標籤的父級上調用layout
,但是這不會破壞數據綁定的目的嗎?
您在包含複合材料時使用了哪種佈局,以及將什麼傳遞給.setLayoutData作爲參數? – 2012-07-24 18:45:21
我在容器上使用'RowLayout',我沒有明確地在標籤上設置任何佈局數據。 – user1155252 2012-07-25 18:14:45