У меня есть список с дюжиной строк, привязанных к xml.Я хотел бы иметь возможность найти и поместить курсор на определенную запись.Например: у меня есть с этим ID, Имя, Значение:
1, Johny, Cash, USA
2, Jean-Michel, Jarre, France
3, Jeanette, , USA
Когда я наберу «Je», SelectedRow будет позиционироваться как ID 2. Когда я наберу «Jeane», SelectedRowбудет позиционироваться с идентификатором 3. Просто я хотел бы иметь возможность поиска и перейти к соответствующей записи в списке просмотра.Я начал создавать SearchString, и в этот момент я застрял:
Единственная возможность в WPF - использовать событие KeyDown.К сожалению, это событие возвращает некий ключ, который я не смог преобразовать в строку.Например, когда я нажимаю «A», SearchString будет «A».Когда я продолжу вводить «B», SearchString будет «AB» и т. Д. Когда SelectedItem изменяется, SearchString будет установлен в String.Empty.Нет KeyCode или другого полезного свойства / метода, доступного.
И вот идет потеря головы.Как я могу построить SearchString мне нужно?Когда я попробовал e.Key.ToString (), я получил действительно забавные строки - например, для 0 на Numpad я получаю ключ "Numpad0", для "," я получаю "OemComma" и т. Д. Я также пытался использовать метод TryParse для char, для ключа «3» я получаю значение «#» и т. д., он работает безупречно только для букв от А до Z, для других ключей TryParse возвращает false.
Единственный способ решить эту проблему -построить таблицу перевода с очень длинным видом "case e.Key.ToString ()":
"A": SearchString = SearchString + "A";
"System", SearchString = SearchString + " ";
"Numpad0", SearchString = SearchString + "0";
"ArrowUp", do nothing
и т. д. и т. д. и т. п.
Нет ли более умного ипростой способ сделать это ??Или я просто не вижу деревья из-за леса?