【问题标题】:DatePicker in DataGrid hidden until you double-click on it隐藏 DataGrid 中的 DatePicker,直到您双击它
【发布时间】:2012-03-01 10:19:07
【问题描述】:

我正在使用 .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>

【问题讨论】:

标签: c# wpf datagrid datepicker


【解决方案1】:

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

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

【讨论】:

  • 使用 CellTemplate 时,更改数据网格中的日期不会触发数据网格中的 RowEditingEnd 事件
  • 好的。您使用 RowEditEnding 事件是为了什么?您可以在 DisplayDate 属性的设置器中执行此事件中的任何操作吗?
【解决方案2】:

组合解决方案怎么样?

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

【讨论】:

    猜你喜欢
    • 2018-03-07
    • 2023-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    相关资源
    最近更新 更多