Ciao a tutti,
ho un problema nel focus di una textbox che fa parte dell'item template di una listview. In questa textbox posso scrivere, ma mi è stato chiesto che abbia un comportamento stile excel in modo che possa cambiare elemento anche con il focus attivo. Ho il problema che le chiavi di tastiera Left/Right/Up/Down non vengono recepite dall'evento keyDown:
Vi posto il codice XAML e .cs:
codice:<ListView x:Name="ListModPVMA" ItemsSource="{Binding PlanToManage.PVMaObservable, Mode=TwoWay}" Width="Auto" HorizontalAlignment="Left" Height="Auto" Margin="0" VerticalAlignment="Top"> <ListView.ItemTemplate> <DataTemplate> <TextBox HorizontalAlignment="Left" x:Name="tbCella" Height="25" FontSize="14" Text="{Binding InData, Converter= {StaticResource PVMa_Converter}}" ToolTip="{Binding InData, Converter{StaticResource PVMa_TooltipConverter}}" DataContext="{Binding}" Loaded="tbCella_Loaded" Tag="{Binding QuarterHour}" Width="Auto" TextAlignment="Right" Cursor="Arrow" FontWeight="Bold" BorderThickness="1" Style="{DynamicResource PotenzeTextBoxStyle}" KeyDown="tbCella_KeyDown" MouseEnter="tbCella_MouseEnter" MouseLeave="tbCella_MouseLeave" GotMouseCapture="tbCella_GotMouseCapture" /> </DataTemplate> </ListView.ItemTemplate> <ListView.ItemsPanel> <ItemsPanelTemplate> <WrapPanel Orientation="Vertical" MaxHeight="110" ItemWidth="Auto" MinHeight="110" ItemHeight="Auto"/> </ItemsPanelTemplate> </ListView.ItemsPanel> </ListView>
parte .cs
Il keydown non riconosce quelle 4 chiavi in WPF, esiste un evento della textbox in cui e.Key sia uno di quei 4 valori?codice:private void tbCella_KeyDown(object sender, KeyEventArgs e) { TextBox tb = sender as TextBox; if (e.Key == System.Windows.Input.Key.Left || e.Key == System.Windows.Input.Key.Right || e.Key == System.Windows.Input.Key.Up || e.Key == System.Windows.Input.Key.Down) { ListView lw = tb.TryFindParent<ListView>(); int index = lw.SelectedIndex; switch (e.Key) { ............ } e.Handled = true; }
Grazie
Mike "The Ram"

Rispondi quotando