Search code examples
c#silverlightcode-behindtypedescriptor

Convert from string to data in silverlight?


Basically I'm trying to do this:

Path path = new Path( ); 

string sData = "M 250,40 L200,20 L200,60 Z";

var converter = TypeDescriptor.GetConverter( typeof( Geometry ) );
path.Data = ( Geometry )converter.ConvertFrom( sData );

but it won't compile, silverlight does not appear to have a TypeDescriptor class...


Solution

  • Try this:-

      Path path = XamlReader.Load("<Path Data=\"M 250,40 L200,20 L200,60\" />") as Path;
    

    Edit

    Should have been:

      public static GeneratePath(string data)
      {
          string pathEnvelope = "<Path xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" Data=\"{0}\"/>")
          return XamlReader.Load(String.Format(pathEnvelope, data)) as Path;
      }
    

    Usage:-

      string data = "M 250,40 L200,20 L200,60";
    
      Path path = GeneratePath(data);
    

    See follow up question: xaml parse exception when attempting to load xaml from codebehind