我有一个名为Time的Timesheet记录类。此类包括员工销的字段,打卡,打卡等。我有一个绑定到DataGrid的这些Times的集合。
我的目标是能够只编辑打卡的时间组件。每个曾经和日期组件也需要调整。对此最好的方法是什么?
My Current XAML
<DataGridTemplateColumn Header="In Day">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path = In, StringFormat = '{}{0:ddd}'}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate >
<DatePicker x:Name="datePicker" SelectedDate="{Binding Path = In}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="In">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path = In, StringFormat= '{}{0:hh:mm tt}'}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate >
<telerik:RadTimePicker SelectedValue="{Binding Path = In}" TimeInterval="0:15:0"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
我的问题是,当我在DatePicker中选择一个日期时,它将我的时间设置为上午12:00。
这样做的最佳方法是什么?我是否需要在单独的字段中存储日期和时间?如果是这样,我该怎么做?
答案 0 :(得分:0)
分别存储日期和时间是一个好主意。在ViewModel中,保留两个DateTime属性,一个用于日期,一个用于时间,两者都包含Changed通知。将它们绑定到您的日期和时间列,并在其设置的访问器中,分别修改第三个DateTime属性,这是您的最终值。