明細を連続で入力する仕組みを考えています。
ListBoxのItemTemplate内で複数の入力コントロールを配置して一覧明細的に表示、入力できるか試してみました。
xaml
1 <ListBox x:Name="listBox" HorizontalAlignment="Left" Height="189" Margin="32,158,0,0" VerticalAlignment="Top" Width="350" 2 ItemsSource="{Binding InputList}"> 3 <ListBox.ItemTemplate> 4 <DataTemplate> 5 <StackPanel Orientation="Horizontal"> 6 <TextBox Text="{Binding Value1}" HorizontalAlignment="Stretch" Width="100"/> 7 <TextBox Text="{Binding Value2}" HorizontalAlignment="Stretch" Width="50"/> 8 <TextBox Text="{Binding Value3}" HorizontalAlignment="Stretch" Width="150"/> 9 </StackPanel> 10 </DataTemplate> 11 </ListBox.ItemTemplate> 12 </ListBox>
1行目の最初のテキストボックスをクリックして入力、次、次とタブで移動するところまではよいのですが、その次にタブを押すと、リストボックスからはフォーカスが外れて違うコントロールに移動してしまいます。
このような場合のフォーカス制御はどこに記載すべきでしょうか。
1行目3つ目のテキストボックスでタブを押したら2行目1つ目のテキストボックスへフォーカス移動したいです。
また、特定のキーを押したら次の行に移動できるような仕組みも実現したいと思っています。
そもそもこのような明細入力の場合、ListBoxではなく他のコントロールを使うべきでしょうか。
提示しましたサンプルはテキストボックスが並んでいるだけなので、DataGridでも対応できると思いますが、実際には1明細20項目くらいのいろんなコントロールやラベルの混在したレイアウトにする予定です。
詳しい方いらっしゃいましたら、ご教示ください。
WPF, C#, Livet使用しています
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/02/03 11:28