【发布时间】:2011-02-11 02:00:15
【问题描述】:
我有两个(或更多)并排的 ListView。我需要它们作为一个,所以每个选择的索引总是相同的。
【问题讨论】:
标签: listview binding javafx selectedindex
我有两个(或更多)并排的 ListView。我需要它们作为一个,所以每个选择的索引总是相同的。
【问题讨论】:
标签: listview binding javafx selectedindex
“反向绑定”似乎是一个选项:
var a;
var b = bind a with inverse;
仅适用于简单的表达式。任何更复杂的东西都会产生警告/错误。
除了不是因为 ListView 的 selectedIndex 是公开读取的(感谢更正)。
你必须这样做:
var lv1 = ListView {
}
var lv2 = ListView {
}
var sel1 = bind lv1.selectedIndex on replace {
lv2.select(sel1);
}
var sel2 = bind lv2.selectedIndex on replace {
lv1.select(sel1);
}
您可能还想在这里和那里添加一些 ifs 以避免额外的 select() 调用。
【讨论】:
这应该可行:),也许。
var lv1 = ListView {
}
var lv2 = ListView {
}
var onSync = false;
var sel1 = bind lv1.selectedIndex on replace {
if (not onSync) {
onSync = true;
lv2.select(sel1);
onSync = false;
}
}
var sel2 = bind lv2.selectedIndex on replace {
if (not onSync) {
onSync = true;
lv1.select(sel2);
onSync = false;
}
}
【讨论】: