背景: view に単一のテーブルの複数のフラグメントがあり、それぞれに rowExpander があるとします
。
予想される動作:
1 つのテーブル フラグメントで行を展開すると、他のフラグメントの同じインデックス付きの行が展開されるはずです。崩壊も同じ
私の進捗状況:
サンプルフラグメント:
tableview(dataset) {
column("First Name", Person::firstNameProperty)
column("Last Name", Person::lastNameProperty)
rowExpander(true) {
selectedData.item?.apply {
fire(ExpandDataEvent(dataset.indexOf(this)))
}
column("Mobile Nos.", Person::mobileNumProperty)
column("Email Ids", Person::emailIdProperty)
}
bindSelected(selectedData)
subscribe<ExpandDataEvent> { event ->
selectionModel.select(event.index)
}
}
イベント クラス:
class ExpandDataEvent(val index: Int) : FXEvent()
「サブスクライブ」から私が理解しているのは、イベントが発生したときに呼び出されるということです (現在、ユーザーがダブルクリック/プラス記号をクリックして行を展開するたびにイベントを発生させています)。サブスクライブはテーブルビュー内に配置されるため、存在するすべてのテーブルフラグメントに対して呼び出されます(これが必要です)。しかし、subscribe メソッドでは、対応するインデックス行のみを選択する selectionModel.select(event.index) を実行しています。行を拡張したい (できれば selectionModel を使用して)
質問 2:
プラス記号の列を削除することは可能ですか? rowExpand の場合、expandOnDoubleClick を true に設定した場合、テーブルビューにプラス記号の列は必要ありません。