Reputation: 191
I am using .NET 3.5, WPF.
I embedded Datapicker in the Data Grid. Changing the date in Data Picker correctly triggers the event RowEditingEnd of DataGrid. However, the column with DataPicker shows no content until you double-click on the cell. After double-clicking the cell, DatePicker shows up. Is there any way to make DatePicker permanently visible?
The xml of DataGrid:
<WPFToolkit:DataGrid Name="dgCustomPermPopup" AutoGenerateColumns="False" Margin="30,20,35,60" SelectionMode="Single" IsReadOnly="False" RowEditEnding="ch" >
<WPFToolkit:DataGrid.Columns>
<WPFToolkit:DataGridTextColumn Header="id" Binding="{Binding Id}" Width="50" />
<WPFToolkit:DataGridTextColumn Header="name" Binding="{Binding Path=DisplayDate}" Width="40" />
<WPFToolkit:DataGridTemplateColumn Header="DisplayDate">
<WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<WPFToolkit:DatePicker Text="" SelectedDate="{Binding Path=DisplayDate}" FirstDayOfWeek="Monday" SelectedDateFormat="Short" />
</DataTemplate>
</WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
</WPFToolkit:DataGridTemplateColumn>
</WPFToolkit:DataGrid.Columns>
</WPFToolkit:DataGrid>
Upvotes: 0
Views: 1163
Reputation: 412
What about a combined solution?
<WPFToolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WPFToolkit:TextBlock Text="{Binding Path=DisplayDate}" />
</DataTemplate>
</WPFToolkit:DataGridTemplateColumn.CellTemplate>
<WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<WPFToolkit:DatePicker Text="" SelectedDate="{Binding Path=DisplayDate}" FirstDayOfWeek="Monday" SelectedDateFormat="Short" />
</DataTemplate>
</WPFToolkit:DataGridTemplateColumn.CellEditingTemplate>
Upvotes: 0
Reputation: 825
You can use CellTemplate instead of CellEditingTemplate to make it visible always. CellEditingTemplate is the template that is used to display the contents of a cell that is in editing mode.
<WPFToolkit:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WPFToolkit:DatePicker Text="" SelectedDate="{Binding Path=DisplayDate}" FirstDayOfWeek="Monday" SelectedDateFormat="Short" />
</DataTemplate>
</WPFToolkit:DataGridTemplateColumn.CellTemplate>
Upvotes: 1