1

2つ(またはそれ以上)のListViewが並んでいます。それぞれの選択されたインデックスが常に同じになるように、それらを1つとして機能させる必要があります。

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);
}

また、余分なselect()呼び出しを避けるために、あちこちにifを追加することもできます。

于 2010-04-22T14:53:08.067 に答える