解決方法がわからないという問題があります。
テキストボックスに入力するときにアイテムをフィルタリングする監視可能なコレクションがあります。問題は、フィルタリングされたアイテムを選択すると、間違った選択されたインデックスが取得されることです。
たとえば、実際に選択されたインデックスをフィルタリングした後、アイテムが1つありますが、入力時にコレクションが設定されるため、フィルタリングされたアイテムが1つしかない場合は、インデックスを1に設定します。
では、どのようにして適切なアイテムを選択するのですか。メールアプリケーションのように、私の質問を理解しやすくするために
選択が変更されたイベントは次のとおりです。
private void searchToDoItemsListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (searchToDoItemsListBox.SelectedIndex == -1)
return;
NavigationService.Navigate(new Uri("/DetailsPage.xaml?selectedItemSearch=" + searchToDoItemsListBox.SelectedIndex, UriKind.Relative));
searchToDoItemsListBox.SelectedIndex = -1;
}
詳細ページは次のとおりです。
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if (NavigationContext.QueryString.TryGetValue("selectedItemSearch", out selectedIndexSearch))
{
int indexSearch = int.Parse(selectedIndexSearch);
DataContext = App.ViewModel.AllToDoItems[indexSearch];
}
}