2012-01-06 93 views
1

我檢索畫布的可見性屬性的狀態有一個小問題。當我檢索頁面狀態時,畫布始終可見,即使它在被墓碑化時被摺疊。我嘗試了一堆,如果其他和切換語句,但沒有運氣。我如何解決這個錯誤?預先感謝任何想要幫助的人!墓碑的畫布可見性屬性

下面的代碼:

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()和即時存檔()方法是在不同的類。這些我從視頻上我看着墓碑了:

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

當您通過調試時,是狀態字典中可見性的值? – 2012-01-06 21:06:42

+0

是的兩個可見和摺疊值轉到SaveState()字典 – 2012-01-06 21:20:33

+0

但你能看到它們在LoadState裏面(即它們實際上是否正確存儲) – 2012-01-06 21:21:30

回答

1

反而節約了System.Windows.Visibility的,省去了bool指示控件是否可見。

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


canvasNotes.Visibility = this.LoadState<bool>(isVisibleKey) ? Visibility.Visible : Visibility.Collapsed;