Отключение поведения LostFocus при редактировании ячейки в Silverlight 2 DataGrid - PullRequest
1 голос
/ 07 апреля 2009

У меня есть пользовательский 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>
...