3 using System.Reflection;
4 using Tizen.NUI.Binding.Internals;
8 namespace Tizen.NUI.Binding
10 [Xaml.ProvideCompiled("Tizen.NUI.Xaml.Core.XamlC.LayoutOptionsConverter")]
11 [Xaml.TypeConversion(typeof(LayoutOptions))]
12 internal sealed class LayoutOptionsConverter : TypeConverter
14 public override object ConvertFromInvariantString(string value)
17 var parts = value.Split('.');
18 if (parts.Length > 2 || (parts.Length == 2 && parts [0] != "LayoutOptions"))
19 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(LayoutOptions)}");
20 value = parts [parts.Length - 1];
22 case "Start": return LayoutOptions.Start;
23 case "Center": return LayoutOptions.Center;
24 case "End": return LayoutOptions.End;
25 case "Fill": return LayoutOptions.Fill;
26 case "StartAndExpand": return LayoutOptions.StartAndExpand;
27 case "CenterAndExpand": return LayoutOptions.CenterAndExpand;
28 case "EndAndExpand": return LayoutOptions.EndAndExpand;
29 case "FillAndExpand": return LayoutOptions.FillAndExpand;
31 FieldInfo field = typeof(LayoutOptions).GetFields().FirstOrDefault(fi => fi.IsStatic && fi.Name == value);
33 return (LayoutOptions)field.GetValue(null);
36 throw new InvalidOperationException($"Cannot convert \"{value}\" into {typeof(LayoutOptions)}");