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;
}