Я хочу отобразить DateTime в двух столбцах как Date и Time соответственно.Обновление столбца времени с помощью ввода «ЧЧммсс» обновляет время, но сбрасывает дату до текущей даты.Как сохранить дату?
public class TimeToStringConverter : IValueConverter
{
public string Format { get; set; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
Format = "HH:mm:ss";
DateTime DateTimeValue = (DateTime)value;
return DateTimeValue.ToString(Format);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
string strValue = value.ToString();
DateTime DateTimeValue;
string format = "HHmmss";
if (value.ToString().Length == 4)
format = "HHmm";
var res1 = DateTime.TryParseExact(strValue, format, null, DateTimeStyles.None, out DateTimeValue);
if (res1)
return DateTimeValue;
return value;
}
}
xaml:
<UserControl.Resources>
<valrule:TimeToStringConverter x:Key="timeConverter"/>
</UserControl.Resources>
<DataGridTextColumn Header="Time" MinWidth="50">
<DataGridTextColumn.Binding>
<Binding Path="Time" StringFormat="HH:mm:ss" UpdateSourceTrigger="Default"
Converter="{StaticResource timeConverter}" >
<Binding.ValidationRules>
<valrule:DateValidation/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>