public async Task GetDistrictData() { if (this.DistrictList.Count != 0) { return; } StorageFolder folder = ApplicationData.Current.LocalFolder; // var file = await folder.GetFileAsync("DistrictDataBackup.json"); var file = await folder.GetFileAsync("DistrictData.json"); string districtJsonText = await FileIO.ReadTextAsync(file); JsonObject districtJsonObject = JsonObject.Parse(districtJsonText); // New DistrictData object foreach (var districtName in districtJsonObject.Keys) { JsonObject postcodeAddressJsonObj = districtJsonObject[districtName].GetObject(); List<string> postcodeList = new List<string>(postcodeAddressJsonObj.Keys); District district = new District(districtName, postcodeList); this.DistrictList.Add(district); // List for all Postcode items List<PostCodeItem> postcodeItemList = (from postcode in postcodeList let addressListJsonArray = postcodeAddressJsonObj[postcode].GetArray() let addressList = addressListJsonArray.Select(address => address.GetString()).ToList() select new PostCodeItem(postcode, addressList)).ToList(); this.PostCodeLibrary.Add(district, postcodeItemList); } }
/// <summary> /// Populates the page with content passed during navigation. Any saved state is also /// provided when recreating a page from a prior session. /// </summary> /// <param name="sender"> /// The source of the event; typically <see cref="NavigationHelper"/>. /// </param> /// <param name="e">Event data that provides both the navigation parameter passed to /// <see cref="Frame.Navigate(Type, Object)"/> when this page was initially requested and /// a dictionary of state preserved by this page during an earlier /// session. The state will be null the first time a page is visited.</param> private void NavigationHelper_LoadState(object sender, LoadStateEventArgs e) { // TODO: Create an appropriate data model for your problem domain to replace the sample data. _currentDistrict = (District)e.NavigationParameter; this.DefaultViewModel[DistrictDataName] = _currentDistrict; }