Carga asincrónica de datos de muestra mezclables en MVVM Light en el constructor del modelo de vista

Tengo un proyecto de Windows Phone 8.1 MVVM Light yEstoy luchando por mantenerlo Blendable.

Como lo veo, tengo algunas opciones. Puedo cargar diferentes modelos de vista dependiendo de siViewModelBase.IsInDesignModeStatic es cierto en elViewModelLocator constructor, o puedo probarViewModelBase.IsInDesignModeStatic en el constructor del modelo de vista y cargue los datos adecuadamente.

SiViewModelBase.IsInDesignModeStatic Es cierto, necesito cargar datos del archivo. Aquí está mi código:

public async Task<ThingsSampleDataSource> GetSampleDataAsync()
{
    if (_DeserializedThingsSampleDataSource == null)
    {
        var dataUri = new Uri(_SampleDataJSONFile);
        var file = await StorageFile.GetFileFromApplicationUriAsync(dataUri);
        var jsonText = await FileIO.ReadTextAsync(file);
        _DeserializedThingsSampleDataSource = JsonConvert.DeserializeObject<ThingsSampleDataSource>(jsonText);
    }
    return _DeserializedThingsSampleDataSource;
}

Cuando llamo a ese método, necesito marcar la llamadaawait y así el método de llamadaasync. Pero los constructores no pueden ser marcadosasync.

O puedo proporcionar una continuación ContinueWith en lugar de esperar el regreso del código asincrónico. Pero Blend carga la página antes de que ContinueWith se complete.

Dado que los datos de muestra se cargan en el modelo de vista o en el servicio de localizaciónconstructores y tiene que cargar datos de un archivo, una actividad asincrónica, ¿cómo hago esto en MVVM Light para que los datos de muestra estén disponibles en Blend?

(N.B. otras respuestas que he encontrado, por ejemploéste, no use MVVM Light.)

Respuestas a la pregunta(1)

Su respuesta a la pregunta