【问题标题】:WPF DatePicker to show the time as well as the dateWPF DatePicker 显示时间和日期
【发布时间】:2014-11-04 00:36:14
【问题描述】:

我在DataGrid 中有一个DatePicker 对象,它成功地显示了数据库或属性中的日期:

<DataGridTemplateColumn.CellTemplate>
   <DataTemplate>
      <DatePicker SelectedDate="{Binding Date, StringFormat=dd/MM/yyyy}"/>
   </DataTemplate>   
</DataGridTemplateColumn.CellTemplate>

现在我想在日期前面显示时间。这是我尝试过的,但它不起作用:

<DataGridTemplateColumn.CellTemplate>
   <DataTemplate>
      <DatePicker SelectedDate="{Binding Date, StringFormat='dd/MM/yyyy HH:mm:ss'}"/>
   </DataTemplate>   
</DataGridTemplateColumn.CellTemplate>

注意:我确实想在代码隐藏中执行此操作。

【问题讨论】:

    标签: wpf xaml datepicker datetimepicker


    【解决方案1】:

    使用扩展 DateTimePicker

    【讨论】:

    • 所以我猜你的回答不能使用 .NET 库来完成?
    • DatePicker 控件不处理时间,只处理日期。所以你需要使用不同的控件。
    【解决方案2】:

    除此之外,不使用其他组件,如果您只想以您想要编辑的格式显示日期,您可以这样做:

        <DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
                <TextBlock  Text="{Binding Path=Date,StringFormat={}{0:dd/MM/yyyy}}"  VerticalAlignment="Center" HorizontalAlignment="Left">
                </TextBlock>
            </DataTemplate>
        </DataGridTemplateColumn.CellTemplate>
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

                  <DataGridTemplateColumn Header="YourDate">
                      <DataGridTemplateColumn.CellEditingTemplate>
                          <DataTemplate>
                              <StackPanel Orientation="Horizontal">
                                  <DatePicker SelectedDate="{Binding YourDate, UpdateSourceTrigger=PropertyChanged}" />
                                  <TextBox Margin="2 0 0 0" Text="{Binding YourDate, UpdateSourceTrigger=PropertyChanged, StringFormat='t'}" />
                              </StackPanel>
                          </DataTemplate>
                      </DataGridTemplateColumn.CellEditingTemplate>
                      <DataGridTemplateColumn.CellTemplate>
                          <DataTemplate>
                              <TextBlock Text="{Binding YourDate}" />
                          </DataTemplate>
                      </DataGridTemplateColumn.CellTemplate>
                  </DataGridTemplateColumn>
      

      这将在绑定到相同属性的 TextBox 旁边显示一个 DatePicker。 TextBox 有一个 StringFormat 只显示日期。

      UpdateSourceTrigger 设置为 PropertyChanged,因此用户无法进行冲突。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 2011-08-24
        • 1970-01-01
        • 1970-01-01
        • 2017-07-26
        • 1970-01-01
        相关资源
        最近更新 更多