Goxy
Goxy

Reputation: 191

DatePicker in DataGrid hidden until you double-click on it

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

Answers (2)

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

Dipesh Bhatt
Dipesh Bhatt

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

Related Questions