2

「すべて選択」機能を実行するコードを実行しようとしています。これを実現するために、コード ビハインドで、すべてのリスト オブジェクトを LongListMultiSelector の SelectedItems に手動で追加しようとしています。

ただし、問題は、これを行うと、情報が同一の 2 つの項目によってリストが拡張されることです。SelectedItems.Add(...)、SelectedItems.Insert(...) を使用してみましたが、役に立ちませんでした。

また、SelectedItems.Remove(...)、SelectedItems.RemoveAt(...) を使用してリストからアイテムの 1 つをすぐに削除しようとしましたが、どちらを実際に削除しても、両方のエントリが実際に削除されます。

最後に、エントリの 1 つを NULL に変更してみました。これにより、リスト内のエントリの 1 つが実際に削除されますが、その後、残りのエントリが null オブジェクト自体に変更されます。この SelectAll 機能を正しい方法で実行していますか? 私が達成したいことのより良い代替手段はありますか? 現在行っていることを続行して、この重複の問題を修正することはできますか?

4

2 に答える 2

1

解決策は、ここで指摘されているように、ユーザーの選択を「偽造」することです。 -a-longlistmultiselector-actually-adds-2/

foreach (var item in LongListMultiSelector.ItemsSource)
{
    var container = LongListMultiSelector.ContainerFromItem(item) 
                          as LongListMultiSelectorItem;
    if (container != null) container.IsSelected = true;
}
于 2013-04-18T08:59:52.940 に答える