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 の場合は Key "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
などなど
これを行うためのより賢くて簡単な方法はありませんか?? それとも、森のせいで木が見えないだけですか?