Как выбрать, какая страница начинается первой в Windows Phone 8

Я делаю приложение погоды в Windows Phone 8. Я использую геолокацию, чтобы получить свои координаты, и использую reverseCoordinates, чтобы получить его в названии города, которое позже я намереваюсь использовать для своего URL-адреса, который я использую для получения данных о погоде.

Это код для моих reverseCoordinates, и он находится в моем файле mainpage.xaml.cs.

public static string City;

public void reverseGeocode_QueryCompleted(object sender, QueryCompletedEventArgs<IList<MapLocation>> e)
{
    MapAddress geoAddress = e.Result[0].Information.Address;
    City = geoAddress.City;
    txtStad.Text = City;
}

В моей MainViewModel (где я должен получить свой город) код, который я использую,

   string City = WeatherApp1.MainPage.City;

Теперь проблема в том, что при отладке я вижу, что интерпретатор сначала использует мою модель mainview, но затем, когда я использую свой код, City имеет значение null, потому что это еще не было сделано в Mainpage.xaml.cs. Могу ли я что-нибудь сделать, чтобы исправить это?


person Gianluca Punzo    schedule 01.09.2014    source источник
comment
как насчет того, где вы заставляете пользователя выбирать город, установите для него значение по умолчанию (т.е. если они заполняют текстовое поле, в нем уже есть «Лондон»).   -  person    schedule 01.09.2014


Ответы (2)


Что вам нужно сделать, так это открыть WMAppManifest.xml и изменить значение страницы навигации на любую нужную вам страницу. например. Страница1.xaml

введите здесь описание изображения

person Kasun Kodagoda    schedule 01.09.2014

Вы должны убедиться, что когда метод, основанный на значении города, выполняется только тогда, когда он имеет значение. Другим решением было бы присвоение некоторого значения по умолчанию. Вы можете использовать ?? такой оператор:

string City = WeatherApp1.MainPage.City ?? "London";

Как это устроено? Когда WeatherApp1.MainPage.City имеет значение null, тогда ?? установит Сити в Лондон.

Также ознакомьтесь с этой статьей о том, как передавать значения между страницами: http://www.geekchamp.com/tips/how-to-pass-data-between-pages-in-windows-phone-альтернативы

person Filip    schedule 01.09.2014