我希望将值绑定到ObservableList
的大小以了解其大小,并知道它是否具有多个值
private ObservableList<String> strings = FXCollections.observableArrayList();
答案 0 :(得分:15)
他们可以与Bindings
类绑定:
ObservableList<String> strings = FXCollections.observableArrayList();
IntegerBinding sizeProperty = Bindings.size(strings);
BooleanBinding multipleElemsProperty = new BooleanBinding() {
@Override protected boolean computeValue() {
return strings.size() > 1;
}
};
答案 1 :(得分:5)
接受的答案是正确的。我将为感兴趣的读者提供额外的见解。
ObservableList
是一个接口,因此不具有<div class="form-group" style="margin-top: 20px;" ng-repeat="row in skuDetails">
<label class="checkbox-inline">
<input type="radio" name="amount_{{$index}}" ng-model="row.amount" ng-value="row.reductionAmount != ''">Reduction Amount
</label>
<label class="checkbox-inline" style="padding-left: 0px;">
<input type="text" name="reductiontext" value="" ng-model="row.reductionAmount" style="width: 80px;">
</label>
<label class="checkbox-inline" style="padding-left: 0px;">
<input type="radio" name="percentage_{{$index}}" value="percentage" ng-model="row.amount">Reduction Percentage
</label>
<label class="checkbox-inline" style="padding-left: 0px;">
<input type="text" name="reductiontext" value="" ng-model="row.reductionPercentage" style="width: 80px;">
</label>
</div>
属性。
ListExpression
是一个实现size
并添加ReadOnlyIntegerProperty size
的抽象类
和
ReadOnlyBooleanProperty empty
属性。此类是列表属性类的整个继承树的基类。
大多数用户不希望自己在树中继承抽象类,因此我们将查看提供的具体实现:
ObservableList
SimpleListProperty
顾名思义,它是一个简单的列表属性 - ListExpression (abstract)
- ReadOnlyListProperty (abstract)
- ListProperty (abstract)
- ListPropertyBase (abstract)
- SimpleListProperty
- ReadOnlyListWrapper
包裹在ObservableList
中。它是其他Property
的并行。它还有一个子类
ReadOnlyListWrapper
处理只读和读写要求。它可以从SimpleXxxProperty
:
ObservableList
需要此类优势(仅使用SimpleListProperty<String> list = new SimpleListProperty<>(FXCollections.observableArrayList());
IntegerProperty intProperty = new SimpleIntegerProperty();
intProperty.bind(list.sizeProperty());
)并决定使用它的用户不需要静态Bindings#size
方法。