How to: Implement Custom Conversion of a TimeSpan Value
- 2 minutes to read
This example demonstrates how to use the HumanReadableTimeSpanHelper instance to implement the custom conversion of a TimeSpan value to a string and vice versa. To do this handle the HumanReadableTimeSpanHelper.ParseString and HumanReadableTimeSpanHelper.ConvertToString events and use the members of the corresponding TimeSpanStringConvertEventArgs object.
using DevExpress.XtraScheduler.Native;
// ...
// Handle the ParseString and ConvertToString events of the HumanReadableTimeSpanHelper.
HumanReadableTimeSpanHelper.ParseString += new TimeSpanStringConvertEventHandler(OnParse);
HumanReadableTimeSpanHelper.ConvertToString += new TimeSpanStringConvertEventHandler(OnToString);
// Custom parsing of a string to a TimeSpan value.
void OnParse(object sender, TimeSpanStringConvertEventArgs e) {
double val;
try {
string number = e.StringValue.Substring(0, e.StringValue.IndexOf(" milliseconds"));
val = Convert.ToDouble(number);
}
catch {
val = 0;
}
e.TimeSpanValue = TimeSpan.FromMilliseconds(val);
e.Handled = true;
}
// Custom conversion of a TimeSpan value to a string.
void OnToString(object sender, TimeSpanStringConvertEventArgs e) {
e.StringValue = e.TimeSpanValue.TotalMilliseconds.ToString() + " milliseconds";
e.Handled = true;
}