public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { try { destinationType.RequireNotNull(); value.RequireNotNull(); var strValue = ConvertToInvariantString(context, value); if (destinationType == typeof(string)) { return(value.ToString()); } if (destinationType == typeof(InstanceDescriptor)) { var info = TargetType.GetField(strValue); if (info != null) { return(new InstanceDescriptor(info, null)); } } if (destinationType == TargetType) { return(FlexEnum.Parse(TargetType, strValue)); } throw new Exception("convertto failed"); } catch { throw new Exception("convertto failed unknown"); } }
public ReportViewer() { InitializeComponent(); EventManager.RegisterClassHandler(typeof(ReportViewer), FlexDocumentViewport.DocumentLoadErrorEvent, new RoutedDocumentLoadErrorEventHandler(OnDocumentLoadError)); resetUI(); Width = AppSettings.Instance.WindowSize.Width; Height = AppSettings.Instance.WindowSize.Height; SizeChanged += onSizeChanged; try { var theme = FlexEnum.FromName <RecommendedThemeSet>(AppSettings.Instance.Theme); ThemePrimitive.SetTheme(this, theme.Value); } catch { AppSettings.Instance.Theme = "Cyan"; } foreach (var arg in from arg in Environment.GetCommandLineArgs() let fi = new FileInfo(arg) where fi.Exists where string.Equals(fi.Extension, ".FLEX", StringComparison.CurrentCultureIgnoreCase) select arg) { Loaded += (Sender, Args) => { OpenDocument(arg); }; } }
public override bool IsValid(ITypeDescriptorContext context, object value) { try { return(FlexEnum.IsDefined(TargetType, value)); } catch { throw new Exception("isvalid failed"); } }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { try { return(FlexEnum.Parse(TargetType, value.RequireType <string>())); } catch { throw new Exception("convertfrom failed"); } }