Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# DataGrid中的日期选择器隐藏,直到您双击它_C#_Wpf_Datagrid_Datepicker - Fatal编程技术网

C# DataGrid中的日期选择器隐藏,直到您双击它

C# DataGrid中的日期选择器隐藏,直到您双击它,c#,wpf,datagrid,datepicker,C#,Wpf,Datagrid,Datepicker,我正在使用.NET3.5,WPF 我在数据网格中嵌入了数据采集器。在数据选择器中更改日期会正确触发DataGrid的事件RowEditingand。但是,在双击单元格之前,带有DataPicker的列不会显示任何内容。双击单元格后,将显示DatePicker。有没有办法让DatePicker永久可见 DataGrid的xml: <WPFToolkit:DataGrid Name="dgCustomPermPopup" AutoGenerateColumns="False" Mar

我正在使用.NET3.5,WPF

我在数据网格中嵌入了数据采集器。在数据选择器中更改日期会正确触发DataGrid的事件RowEditingand。但是,在双击单元格之前,带有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>

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

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

组合解决方案怎么样

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


这可能会对您在使用CellTemplate时有所帮助,更改数据网格中的日期不会触发datagridok中的Roweditingand事件。对于您正在使用的RowEditEnding事件?您可以在DisplayDate属性的setter中执行此事件中正在执行的任何操作吗?