javafx绑定到observablelist项更改事件不起作用

时间:2016-05-23 08:16:19

标签: javafx

说我有一个名为CompanyModel的应用程序模型类,它包含一个Company实例的observableList。公司是一个持有另一个产品bean的observableList的bean。

我能够通过以下方式观察列表更改事件(添加/删除):

companyModel.loadedCompanyList.addListener(new ListChangeListener(){ // do something});

,公司类看起来像:

class Company {
    private ObservableList<Product> loadedProducts = FXCollections.observableArrayList();
    private ObjectProperty<Product> currentProduct = new SimpleObjectProperty<Product>();

   // setters and getters
}

并且CompanyModel类看起来像:

class CompanyModel {
    private ObservableList<Company> loadedCompanyList = FXCollections.observableArrayList();
    private ObjectProperty<Company> selectedCompany = new SimpleObjectProperty<Company>();

   // setters and getters
}

问题是每当我在loadedProducts中添加新产品时,绑定的loadedCompanyList列表更改事件永远不会触发。如何绑定可观察列表的列表项更改事件?

我确实用Google搜索了一些答案,这是我尝试过的: 将CompanyModel类更改为:

Callback<Company, Observable[]> extractor = new Callback<Company, Observable[]>() {

    @Override
    public Observable[] call(Company company) {
        return new Observable[] {company.getLoadedProductsProperty()};
    }
};

private ObservableList<Company> loadedCompanyList = FXCollections.observableArrayList(extractor));
然而,它不起作用..

0 个答案:

没有答案