DataGrid中的DatePicker隐藏,直到您双击它

时间:2012-03-01 10:19:07

标签: c# wpf datagrid datepicker

我使用的是.NET 3.5,WPF。

我在数据网格中嵌入了Datapicker。在Data Picker中更改日期会正确触发DataGrid的事件RowEditingEnd。但是,在双击单元格之前,带有DataPicker的列不显示任何内容。双击单元格后,DatePicker显示出来。有没有办法让DatePicker永久可见?

DataGrid的xml:

    <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>

2 个答案:

答案 0 :(得分:1)

您可以使用CellTemplate而不是CellEditingTemplate使其始终可见。 CellEditingTemplate是用于显示处于编辑模式的单元格内容的模板。

 <WPFToolkit:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <WPFToolkit:DatePicker Text="" SelectedDate="{Binding Path=DisplayDate}" FirstDayOfWeek="Monday"  SelectedDateFormat="Short" />
                        </DataTemplate>
   </WPFToolkit:DataGridTemplateColumn.CellTemplate>

答案 1 :(得分:0)

组合解决方案怎么样?

<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>