Имущество Видимости Холста - PullRequest
1 голос
/ 07 января 2012

У меня небольшая проблема с получением состояния свойства видимости холста. Когда я получаю состояние страницы, холст всегда виден, даже если он был свернут, когда он был захоронен. Я попробовал кучу if else и поменял заявления, но безуспешно. Как я могу исправить эту ошибку? Заранее спасибо всем, кто хочет помочь!

Вот код:

    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 () находятся в другом классе. Это я получил из видео, которое я смотрел на могиле:

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);
    }

1 Ответ

1 голос
/ 07 января 2012

Вместо сохранения System.Windows.Visibility сохраните bool, указывая, является ли элемент управления видимым.

this.SaveState(isVisibleKey,coachNotes.Visibility == Visibility.Visible); 


canvasNotes.Visibility = this.LoadState<bool>(isVisibleKey) ? Visibility.Visible : Visibility.Collapsed;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...