C# 逻辑删除画布可见性属性
我在检索画布的可见性属性的状态时遇到了一个小问题。当我检索页面状态时,画布始终可见,即使它在被删除时已折叠。我尝试了一系列if-else和switch语句,但没有成功。如何修复此错误?提前感谢任何想要帮助的人 代码如下:C# 逻辑删除画布可见性属性,c#,windows-phone-7.1,windows-phone-7,C#,Windows Phone 7.1,Windows Phone 7,我在检索画布的可见性属性的状态时遇到了一个小问题。当我检索页面状态时,画布始终可见,即使它在被删除时已折叠。我尝试了一系列if-else和switch语句,但没有成功。如何修复此错误?提前感谢任何想要帮助的人 代码如下: private const string coachPivotKey = "CoachPivotKey"; private const string isVisibleKey = "IsVisibleKey"; protected override v
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);
}
私有常量字符串coachPivotKey=“coachPivotKey”;
私有常量字符串isVisibleKey=“isVisibleKey”;
受保护的覆盖无效OnNavigatedFrom(System.Windows.Navigation.NavigationEventArgs e)
{
保存状态(coachPivot键,coachPivot.SelectedIndex);
这个.SaveState(isVisibleKey,canvasNotes.Visibility);
}
受保护的覆盖无效OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
coachPivot.SelectedItem=coachPivot.Items[this.LoadState(coachPivotKey)];
canvasNotes.Visibility=this.LoadState(isVisibleKey);
基地。导航到(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);
}
public static void SaveState(此PhoneApplicationPage PhoneApplicationPage,字符串键,对象值)
{
if(phoneApplicationPage.State.ContainsKey(键))
{
phoneApplicationPage.State.Remove(键);
}
phoneApplicationPage.State.Add(键、值);
}
公共静态T加载状态(此PhoneApplicationPage PhoneApplicationPage,字符串键)
{
if(phoneApplicationPage.State.ContainsKey(键))
{
返回(T)phoneApplicationPage.State[键];
}
返回默认值(T);
}
保存指示控件是否可见的bool
而不是保存System.Windows.Visibility
this.SaveState(isVisibleKey,coachNotes.Visibility == Visibility.Visible);
canvasNotes.Visibility = this.LoadState<bool>(isVisibleKey) ? Visibility.Visible : Visibility.Collapsed;
this.SaveState(isVisibleKey,coachNotes.Visibility==Visibility.Visible);
canvasNotes.Visibility=this.LoadState(isVisibleKey)?可见性.可见:可见性.折叠;
保存指示控件是否可见的bool
而不是保存System.Windows.Visibility
this.SaveState(isVisibleKey,coachNotes.Visibility == Visibility.Visible);
canvasNotes.Visibility = this.LoadState<bool>(isVisibleKey) ? Visibility.Visible : Visibility.Collapsed;
this.SaveState(isVisibleKey,coachNotes.Visibility==Visibility.Visible);
canvasNotes.Visibility=this.LoadState(isVisibleKey)?可见性.可见:可见性.折叠;
调试时,可见性的值是否在状态字典中?是的,可见值和折叠值都会进入SaveState()字典,但您能否在LoadState中看到它们(即它们是否实际正确存储)请尝试将可见性保存为布尔值而不是可见性。可见性有两种状态:this.SaveState(isVisibleKey,coachNotes.Visibility==Visibility.Visibility;canvasNotes.Visibility=this.LoadState(isVisibleKey)?Visibility.Visibility:Visibility.Collapsed;调试完成时,状态字典中的可见性值是吗?是的,可见值和塌陷值都会转到SaveState()字典但是你能在LoadState中看到它们吗(即它们是否确实正确存储)尝试将可见性保存为布尔而不是可见性。可见性有两种状态:)this.SaveState(isVisibleKey,coachNotes.Visibility==可见性。Visibility;canvasNotes.Visibility=this.LoadState(isVisibleKey)?可见性。可见:可见性。折叠;