我有一个列表视图,其中有十几行绑定到 xml。我希望有可能将光标定位并定位到某个记录。例如:我有一个带有这些 ID、名称、值的:
1, Johny, Cash, USA
2, Jean-Michel, Jarre, France
3, Jeanette, , USA
当我输入“Je”时,SelectedRow 将定位到 ID 2。当我输入“Jeane”时,SelectedRow 将定位到 ID 3。只是我希望有可能搜索并转到正确的记录在列表视图中。我开始构建 SearchString,此时我陷入了困境:
WPF 中唯一的一种可能性是使用 KeyDown 事件。不幸的是,此事件返回一种 Key,我无法将其转换为字符串。例如,当我按“A”时,SearchString 将是“A”。当我继续输入“B”时,SearchString 将是“AB”等。当 SelectedItem 更改时,SearchString 将设置为 String.Empty。没有可用的 KeyCode 或其他有用的属性/方法。
这里是头部摩擦。如何构建我需要的 SearchString?当我尝试 e.Key.ToString() 时,我得到了非常有趣的字符串 - 例如,对于 Numpad 上的 0,我得到一个键“Numpad0”,对于“,”,我得到“OemComma”等。我也在尝试使用 TryParse 方法来 char ,对于键“3”,我得到一个值“#”等,它仅适用于字母 A 到 Z,对于其他键 TryParse 返回 false。
解决此问题的唯一方法是使用很长的“case e.Key.ToString() of”构建一个转换表:
"A": SearchString = SearchString + "A";
"System", SearchString = SearchString + " ";
"Numpad0", SearchString = SearchString + "0";
"ArrowUp", do nothing
等等等等等等
没有更聪明更简单的方法吗?或者我只是因为森林而看不到树?