У меня есть небольшая проблема с получением состояния свойства видимости холста. Когда я извлекаю состояние страницы, холст всегда отображается, даже если он был свернут, когда он был уничтожен. Я попробовал кучу if else и switch, но не повезло. Как исправить эту ошибку? Заранее благодарим всех, кто хочет помочь!Tombstoning Canvas Видимость Свойство
Вот код:
private const string coachPivotKey = "CoachPivotKey";
private const string isVisibleKey = "IsVisibleKey";
protected override void OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
this.SaveState(coachPivotKey, coachPivot.SelectedIndex);
this.SaveState(isVisibleKey, canvasNotes.Visibility);
}
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
coachPivot.SelectedItem = coachPivot.Items[this.LoadState<int>(coachPivotKey)];
canvasNotes.Visibility = this.LoadState<Visibility>(isVisibleKey);
base.OnNavigatedTo(e);
}
LoadState() и SaveState() методы в другом классе. Это я получил от видео, которое я смотрел на tombstoning:
public static void SaveState(this PhoneApplicationPage phoneApplicationPage, string key, object value)
{
if (phoneApplicationPage.State.ContainsKey(key))
{
phoneApplicationPage.State.Remove(key);
}
phoneApplicationPage.State.Add(key, value);
}
public static T LoadState<T>(this PhoneApplicationPage phoneApplicationPage, string key)
{
if (phoneApplicationPage.State.ContainsKey(key))
{
return (T)phoneApplicationPage.State[key];
}
return default(T);
}
Когда вы отлаживаете, это значение для видимости внутри словаря государства? –
Да, оба значения Visible и Collapsed переходят к словарю SaveState() –
Но вы можете видеть их внутри LoadState (то есть были ли они действительно сохранены правильно) –