0

ListView 100 個のアイテムが含まれており、選択したアイテムに基づいて特定のアクティビティを実行できます。メソッドを使用EnsureVisible()して可視性を調整し、ListView時々リフレッシュしてデータを更新しました。

今私が直面している問題は、リストの最初の項目を選択した場合、この選択中にページダウンを開始した場合(おそらく 21 番目、59 番目、75 番目を選択)、コントロールが突然このインスタンスでページを更新すると、最初に選択したものだけがフォーカスを保持し、他の選択が失われたため、個別に、またはすばやくやり直す必要があります。

だから私の質問は、使用されListViewているにもかかわらず、データを埋めるために特定の間隔でリフレッシュしている間に、複数のアイテムを選択してアクションを実行する方法EnsureVisible()です?

これは私の既存のコードです:

 if (_listviewFirst.SelectedItems.Count > 0)
        {
            _listviewFirst.SelectedItems[_listviewFirst.SelectedItems.Count - 1].EnsureVisible();
            _listviewFirst.SelectedItems[0].EnsureVisible();
        }
4

1 に答える 1

1

ListView.ItemSelectionChangedMSDN )イベントを使用して、選択したアイテムのアイテム(またはその参照)を追加/削除しListます。コントロールが更新されたら、選択した項目を繰り返し、 で項目を選択済みに更新する必要がありますListView

これを行うには、イベント ハンドラでe.IsSelectedande.Itemまたはを利用できます。e.ItemIndex

私はこれにはまったく使用EnsureVisibleしません。

于 2013-01-09T09:38:50.200 に答える