我使用的是.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>
答案 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>