我有Part
包含TreeViewer
與Node
s和每個Node
具有name
屬性。我有一個文本字段來編輯當前所選節點的名稱。我已綁定了當前的選擇和低於這個文本字段:如何在文本字段值更改時標記髒部分?
IViewerObservableValue observedElementSingleSelection = ViewersObservables
.observeSingleSelection(treeViewer);
IObservableValue detailValue = PojoProperties.value(Node.PROPERTY_NAME, String.class)
.observeDetail(observedElementSingleSelection);
ISWTObservableValue observableNameText = WidgetProperties.text(SWT.Modify)
.observe(nameText);
dataBindingContext.bindValue(observableNameText, detailValue);
現在我想只要用戶編輯任何Node
的名字,以紀念這個treeViewer
髒的部分。
當此Part
打開時,將從數據庫中檢索Node
,並創建樹。如果我將ModifyListener
添加到文本字段以標記零件髒,然後在初始加載Part
被標記爲髒,我不想。只有在用戶編輯任何Node
的名稱時纔有辦法標記Part
骯髒,但不是在初始加載時?
我試圖設置UpdateStrategy
,以便數據綁定是單向的,即僅從視圖到模型,但是在選擇時名稱不會出現在文本字段中。
我試過KeyListener
,但是我必須過濾掉所有不可打印的鍵,以將Part
標記爲髒。有沒有更好的解決方案?
我建議你先加載模型並設置綁定/偵聽器等。之後。然後它不應該變髒。 –