Для совместного использования значения между страницами в экземпляре приложения добавьте значение к ресурсам приложения на производящей странице и получите значение из ресурса в другой.
Вот некоторые вспомогательные методы, которые я часто использую, которые иллюстрируют, как использовать ресурсы приложения.
public static T GetResource<T>( object key ) where T : class
{
return Application.Current.Resources[ key ] as T;
}
public static T GetResourceValueType<T>( object key ) where T : struct
{
object value = Application.Current.Resources[ key ];
return (value != null)
? (T)value
: new T();
}
public static void SetResource( object key, object resource )
{
if ( Application.Current.Resources.Contains( key ) )
Application.Current.Resources.Remove( key );
Application.Current.Resources.Add( key, resource );
}
Обратите внимание, что SetResource работает вокруг того факта, что вы не можете изменить значение ресурса приложения после его установки, поэтому он удаляет старый ресурс, а затем добавляет новый. Разница между GetResource и GetResourceValueType заключается в том, является ли тип типом ресурса CLR (т. Е. Классом) или типом значения CLR (т. Е. Структурой, такой как int или bool).
Для вашего примера вы бы использовали их так:
bool exitAlert_Page1 = true;
SetResource( "ExitAlert", exitAlert );
// elsewhere...
bool exitAlert_Page2 = GetResourceValueType<bool>( "ExitAlert" );
Обычно я использую эти вспомогательные методы для реализации метода get и set свойства C #, так что используемое значение «ключа» ограничено определением свойства.
Обновление: так как это уже происходило раньше, я обернул это, с небольшими улучшениями и загружаемым кодом, в посте блога http://www.visualstuart.net/blog2/2011/11/sharing-values-across-wp7-pages/. Наслаждайтесь!