From 3fbc48411a24d39f954bf2603007998e35fd3652 Mon Sep 17 00:00:00 2001 From: brianlagunas_cp Date: Mon, 26 Sep 2011 20:33:16 +0000 Subject: [PATCH] PropertyGrid: added TimeSpan editor --- .../Implementation/Editors/TimeSpanEditor.cs | 32 +++++++++++++++++++ .../Implementation/PropertyGrid.cs | 2 ++ .../WPFToolkit.Extended.csproj | 1 + 3 files changed, 35 insertions(+) create mode 100644 ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/Editors/TimeSpanEditor.cs diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/Editors/TimeSpanEditor.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/Editors/TimeSpanEditor.cs new file mode 100644 index 00000000..6771461b --- /dev/null +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/Editors/TimeSpanEditor.cs @@ -0,0 +1,32 @@ +using System; +using System.Windows.Data; +using System.Globalization; + +namespace Microsoft.Windows.Controls.PropertyGrid.Editors +{ + public class TimeSpanEditor : DateTimeUpDownEditor + { + private sealed class TimeSpanConverter : IValueConverter + { + object IValueConverter.Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + return DateTime.Today + (TimeSpan)value; + } + + object IValueConverter.ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return ((DateTime)value).TimeOfDay; + } + } + + protected override void SetControlProperties() + { + Editor.Format = DateTimeFormat.LongTime; + } + + protected override IValueConverter CreateValueConverter() + { + return new TimeSpanConverter(); + } + } +} diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs index 636d721a..4a12cedf 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/PropertyGrid/Implementation/PropertyGrid.cs @@ -466,6 +466,8 @@ namespace Microsoft.Windows.Controls.PropertyGrid editor = new ColorEditor(); else if (propertyItem.PropertyType.IsEnum) editor = new EnumComboBoxEditor(); + else if (propertyItem.PropertyType == typeof(TimeSpan)) + editor = new TimeSpanEditor(); else if (propertyItem.PropertyType == typeof(FontFamily) || propertyItem.PropertyType == typeof(FontWeight) || propertyItem.PropertyType == typeof(FontStyle) || propertyItem.PropertyType == typeof(FontStretch)) editor = new FontComboBoxEditor(); else if (propertyItem.PropertyType.IsGenericType) diff --git a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj index cdb27ccd..7191d9fe 100644 --- a/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj +++ b/ExtendedWPFToolkitSolution/Src/WPFToolkit.Extended/WPFToolkit.Extended.csproj @@ -256,6 +256,7 @@ +