Je suis en train d'obtenir un DataGridTemplateColumn à se comporter de manière identique à un TextColumnComment sélectionner tout le texte lorsque la zone de texte d'édition dans un DataGridTemplateColumn reçoit le focus?
- lorsque la cellule passe en mode d'édition (Appuyez sur F2), l'utilisateur peut immédiatement commencer à taper la nouvelle valeur
- par défaut, le contenu de texte existant est sélectionné - de sorte que vous pouvez définir de nouvelles valeurs facilement
Vous avez terminé le premier; Cependant, la sélection de tout le texte ne fonctionne pas. Comme mentionné par un certain nombre de messages, essayé d'accrocher dans l'événement GotFocus et en sélectionnant tout le texte dans le code-behind. Cela a fonctionné pour une zone de texte autonome; Toutefois, pour une zone de texte qui est le contrôle d'édition pour un TemplateColumn, cela ne fonctionne pas.
Des idées? Exemple de code:
<Window.Resources>
<Style x:Key="HighlightTextBoxStyle" TargetType="{x:Type TextBox}">
<EventSetter Event="GotFocus" Handler="SelectAllText"/>
<EventSetter Event="GotMouseCapture" Handler="SelectAllText"/>
<Setter Property="Background" Value="AliceBlue"/>
</Style>
<DataTemplate x:Key="DefaultTitleTemplate">
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
<DataTemplate x:Key="EditTitleTemplate">
<TextBox x:Name="Fox"
FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"
Text="{Binding Path=Title, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
Style="{StaticResource HighlightTextBoxStyle}">
</TextBox>
</DataTemplate>
</Window.Resources>
<DockPanel>
<TextBox DockPanel.Dock="Top" x:Name="Test" Text="{Binding Path=(FocusManager.FocusedElement).Name, ElementName=MyWindow}"
Style="{StaticResource HighlightTextBoxStyle}"/>
<toolkit:DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False">
<toolkit:DataGrid.Columns>
<toolkit:DataGridTemplateColumn Header="Templated Title"
CellTemplate="{StaticResource DefaultTitleTemplate}"
CellEditingTemplate="{StaticResource EditTitleTemplate}" />
<toolkit:DataGridTextColumn Header="Title" Binding="{Binding Path=Title}" />
</toolkit:DataGrid.Columns>
</toolkit:DataGrid>
</DockPanel>
Pour autant que je peux dire cette question est encore en suspens. – Dabblernl
@Dabblernl - essayez si le correctif de bande-conduit suivant fonctionne. – Gishu