1

我有两个(或更多)并排的 ListView。我需要它们充当一个,因此每个选定的索引总是相同的。

4

2 回答 2

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;
    }
}
于 2010-04-27T11:56:16.263 回答
0

“与逆绑定”似乎是一种选择:

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() 调用。

于 2010-04-22T14:53:08.067 回答