オブジェクトのList<>にバインドされたデータを含むListBoxがあります。ListBox_SelectionChangedイベントで、選択したインデックスがList<>の最後の項目であるかどうかを確認しています。selectedIndexが最後のアイテムである場合、そのアイテムを削除し、Webサービスを呼び出してリストにさらにアイテムを追加します。しかし、selectedIndexが最後の項目でない場合は、ページに移動します。私の問題は、selectedTndexが最後のアイテムである場合、最後のアイテムを削除しますが、selectedIndexが最後のアイテムであるかどうかを確認する同じ「if」状態に再び戻ります。したがって、私のサービスを呼び出す代わりに、次のページに移動します。なぜif()条件を再度呼び出すのか、そしてそれをどのように処理するのか、誰か教えてもらえますか?
質問する
230 次
2 に答える
1
リストボックスからアイテムを削除すると、彼(ListBoxコントロール)が前のアイテムを自動的に選択し、これによりSelectionChangedイベントが発生すると思います。そのため、前にこのイベントからサブスクライブを解除できます (疑似コードで):
bool isLast = ... ;
if (isLast)
{
listBox.SelectionChanged -= OnSelectionChanged;
Remove(item);
listBox.SelectionChanged += OnSelectionChanged;
}
そのため、アイテムを削除しても、このイベントは再び発生しません。また、選択をクリアしたい場合があります:
listBox.SelectedIndex = -1;
于 2013-01-16T12:23:47.387 に答える
0
たぶん、リストボックスをクリアして再度ロードすると、役立つでしょう。
于 2013-01-16T12:22:28.980 に答える