У меня есть пользовательский CellEditingTemplate
, в котором есть текстовое поле и элемент управления календаря внутри сетки. Я сделал так, чтобы текстовое поле получало фокус, когда пользователь редактирует ячейку, нажимая F2
на клавиатуре. К сожалению, сетка данных Silverlight подключается к событию Grid LostFocus
, поэтому, когда пользователь нажимает на элемент управления выбора даты, происходит событие LostFocus
и ячейка выходит из режима редактирования. У кого-нибудь есть идеи о том, как это предотвратить? (Если бы только Silverlight имел свойство .Handled
в RoutedEventArgs
.)
Образец XAML:
<data:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Grid>
<TextBox Loaded="FocusTextBox"
Text="{Binding Path=ETD, Mode=TwoWay}" />
<controls:DatePicker
x:Name="datePicker"
SelectedDate="{Binding Path=ETD, Mode=TwoWay, Converter={StaticResource DateTimeConverter}}"
Margin="2"
Width="22"
HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
</data:DataGridTemplateColumn.CellEditingTemplate>