In my configuration project, my startup page allows a user to pick a "Location", using this location I create a new project for them. I then want to get the MapView and load up some feature layers for that location and zoom to that location. But it seems i have to wait for the Map to load before i can do what I want.
So I call this Command from my xaml BlankProjectCommand
public ICommand BlankProjectCommand
{
get
{
return new RelayCommand((args) => BlankSelectionViewModelHelper.NewBlankProject(_Location), () => true); ;
}
}
Then it returns this function NewBlankProject, but the following function wont work fully because i cant reference the MapView.Active.Map as I want to load some feature layers for the Location and zoom to that location. Is there anyway I can wait for the map to load after var newProject = await Project.CreateAsync(cps);
internal static async void NewBlankProject(string inLocation)
{
string defaultName = inLocation;
string defaultFolder = DefaultFolder();
string templatePath = GetDefaultMapTemplate(); //Map
if (!string.IsNullOrEmpty(defaultFolder) && !string.IsNullOrEmpty(templatePath))
{
var cps = new CreateProjectSettings()
{
Name = defaultName,
LocationPath = DefaultFolder(),
TemplatePath = GetDefaultMapTemplate()
};
var newProject = await Project.CreateAsync(cps);
if (MapView.Active != null && MapView.Active.Map != null)
{
MapSettings newMapSettings = new MapSettings();
newMapSettings.PlantCode = inPlantCode;
newMapSettings.HarvestYear = inHarvestYear;
newMapSettings.HarvestTrimester = inHarvestTrimester;
newMapSettings.MaterialGroup = inMaterialGroup;
newMapSettings.Environment = Settings.CurrentEnvironment;
List<UserPlantData> UserPlantDataList = new List<UserPlantData>();
UserPlantDataList = await WebServiceUtility.GetUserPlantDataAsync();
if (!newMapSettings.Equals(Settings.CurrentMapSettings))
{
await FeatureServiceManagement.LoadFeatureServiceAsync(newMapSettings);
await Navigation.ZoomToPlantExtentAsync();
}
}
}