私はタイムと呼ばれるタイムシートレコードのクラスを持っています。このクラスには、従業員ピン、パンチ、アウトパンチなどのフィールドが含まれます。私はDataGridにバインドされているこれらのTimesのコレクションを持っています。WPF DataGridで別々に日付と時刻を編集
私の目標は、パンチの時間成分だけを編集できるようにすることです。毎回、そして日付コンポーネントも調整する必要があります。このための最良の方法は何でしょうか?これで
私の現在の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>
私の問題は、私は日付ピッカーで日付を選択するとき、それは午前12:00に私の時間を設定していることです。
これを行うにはどのような方法が最適ですか?別のフィールドに日付と時刻を格納する必要がありますか?もしそうなら、どうしたらいいですか?
バインドされた非表示の列にDateTimeを配置します。編集可能な列に日付のコピーを入れ、編集可能な時間を別の列に入れます。編集可能な列の1つが更新されたら、値が正しいように非表示列を更新する必要があります - 日付+時間。 –