private static IValueProvider GetSource(IValueProvider source) { switch (source) { case LiteralValue literal: switch (literal.Value) { case string str: return(new LiteralValue(FromString(str))); case ImageSource src: return(new LiteralValue(src)); default: return(LiteralValue.Null); } case null: return(LiteralValue.Null); default: return(source.Wrap(new ImageSourceValueConverter())); } }