J'utilise le DataGrid WPF et je souhaite créer mon propre CellEditingTemplate. Je veux reproduire quelque chose comme le DatePicker qui ne remplace pas tout le contenu de la cellule lorsque son cours d'édition, mais simplement comme ce à virgule flottante: http://i3.windowsclient.net/SiteFiles/1000/wpfsp1/wpf-35sp1-toolkit/107-2.png?cdn_id={b4d0570c}WPF DataGrid CellEditingTemplate avec contrôle flottant
J'ai essayé ceci:
<tk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Popup AllowDrop="False" StaysOpen="False" >
<Canvas Width="100" Height="100" Background="Aqua"/>
</Popup>
</DataTemplate>
</tk:DataGridTemplateColumn.CellEditingTemplate>
mais ne semble pas faire l'affaire. Je me demandais comment je pourrais faire mon propre contrôle qui peut être utilisé pour un modèle de modification de cellule.
Merci, Raul
Réponse:
<tk:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock x:Name="PART_TextBox"
Grid.Row="0" Grid.Column="0"
Text="{Binding User.Name}" />
<Popup x:Name="PART_Popup"
PlacementTarget="{Binding ElementName=PART_TextBox}"
Placement="Bottom"
StaysOpen="True"
AllowsTransparency="True"
IsOpen="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBox Grid.Column="0" Grid.Row="0" Text="(Enter a last, first)"/>
<Button Grid.Column="1" Grid.Row="0" Content="Search" />
<TreeView Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="2" Height="200" Width="200" />
</Grid>
</Popup>
</Grid>
</DataTemplate>
</tk:DataGridTemplateColumn.CellEditingTemplate>
C'était tout. J'ai aussi dû avoir StaysOpen = "True" Merci! – HaxElit