diff options
| author | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 17:17:46 +0000 |
|---|---|---|
| committer | Lucas Faria Mendes <lucas.fariamo08@gmail.com> | 2026-03-30 17:17:46 +0000 |
| commit | 0440c722a221b8068bbf388c1c0c51f0faff0451 (patch) | |
| tree | 169cbf90c50ff7961db82ecb606c50c2a45a1688 /Gestor.Common/Gestor.Common.Converters/ObjectToStringConverter.cs | |
| parent | 225aa1499e37faf9d38257caabbadc68d78b427e (diff) | |
| download | gestor-master.tar.gz gestor-master.zip | |
Diffstat (limited to 'Gestor.Common/Gestor.Common.Converters/ObjectToStringConverter.cs')
| -rw-r--r-- | Gestor.Common/Gestor.Common.Converters/ObjectToStringConverter.cs | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Gestor.Common/Gestor.Common.Converters/ObjectToStringConverter.cs b/Gestor.Common/Gestor.Common.Converters/ObjectToStringConverter.cs new file mode 100644 index 0000000..2748ce0 --- /dev/null +++ b/Gestor.Common/Gestor.Common.Converters/ObjectToStringConverter.cs @@ -0,0 +1,41 @@ +using System; +using System.ComponentModel; +using System.Globalization; +using System.Linq; +using System.Reflection; +using System.Windows.Data; + +namespace Gestor.Common.Converters; + +public class ObjectToStringConverter : IValueConverter +{ + public static readonly ObjectToStringConverter Instance = new ObjectToStringConverter(); + + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if (value is Enum @enum) + { + MemberInfo[] member = @enum.GetType().GetMember(@enum.ToString()); + if (member.Length == 0) + { + return @enum.ToString(); + } + object[] customAttributes = member[0].GetCustomAttributes(typeof(DescriptionAttribute), inherit: false); + if (!customAttributes.Any()) + { + return @enum.ToString().Trim(); + } + return ((DescriptionAttribute)customAttributes.ElementAt(0)).Description.Trim(); + } + if (value is DateTime dateTime) + { + return dateTime.ToShortDateString(); + } + return value?.ToString(); + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + return null; + } +} |