質問: 明細を連続で入力する仕組みを考えています。 ListBoxのItemTemplate内で複数の入力コントロールを配置して一覧明細的に表示、入力できるか試してみました。 ``` ``` ![実行イメージ](https://teratail.storage.googleapis.com/uploads/contributed_images/ceb1c5697712fe71ae17e8f786b30360.png) 1行目の最初のテキストボックスをクリックして入力、次、次とタブで移動するところまではよいのですが、その次にタブを押すと、リストボックスからはフォーカスが外れて違うコントロールに移動してしまいます。 このような場合のフォーカス制御はどこに記載すべきでしょうか。 1行目3つ目のテキストボックスでタブを押したら2行目1つ目のテキストボックスへフォーカス移動したいです。 また、特定のキーを押したら次の行に移動できるような仕組みも実現したいと思っています。 そもそもこのような明細入力の場合、ListBoxではなく他のコントロールを使うべきでしょうか。 --- 提示しましたサンプルはテキストボックスが並んでいるだけなので、DataGridでも対応できると思いますが、実際には1明細20項目くらいのいろんなコントロールやラベルの混在したレイアウトにする予定です。 詳しい方いらっしゃいましたら、ご教示ください。 WPF, C#, Livet使用しています
回答: ListBox などでフォーカスなどの挙動を操作しようとすると病気になりそうなので、DataGrid を使ってます。 DataGrid には DataGridTemplateColumn があるので殆どのコントロールを使えます。 というか、DataGridTemplateColumn 以外のカラムはめったに使いません。