我有两个(或更多)ListView并排。我需要它们作为一个,所以每个的选定索引始终是相同的。
答案 0 :(得分:1)
这应该可以工作:),也许。
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;
}
}
答案 1 :(得分:0)
“with inverse with inverse”似乎是一个选择:
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()调用。