2012-03-01 16 views
0

我正在使用.NET 3.5,WPF。DataGrid中的DatePicker隱藏,直到你雙擊它

我在數據網格中嵌入了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

也許這會幫助你[單點擊查看編輯](http://wpf.codeplex.com/wikipage?title=Single-Click%20Editing&ProjectName=wpf) – V4Vendetta 2012-03-01 10:25:03

回答

1

可以使用CellTemplate代替CellEditingTemplate使其始終可見。 CellEditingTemplate是用於顯示處於編輯模式的單元格內容的模板。

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

使用CellTemplate,chaning在數據的日期grid不會觸發datagrid中的RowEditingEnd事件 – Goxy 2012-03-01 11:15:07

+0

ok。對於你使用RowEditEnding事件?你可以在DisplayDate屬性的setter中做任何事情嗎? – 2012-03-01 11:26:05

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>