当每个 PivotItem 都是一个页面时,我在 UWP C# 中使用 pivot。每次按下 PivotItem 都会转到一个开关盒并选择要加载的页面(框架)。我的问题是,第一次一切正常,但如果我离开一页并再次按到那个枢轴,就会发生奇怪的事情。我需要每次打开该页面时都将其完全相同地初始化Xaml 中的枢轴:<Pivot x:Name="XmlConfigPivot" SelectionChanged="XmlConfigPivot_SelectionChanged"> <PivotItem Header="Stub_Tab"> <Frame/> </PivotItem> <PivotItem Header="Layout"> <Frame/> </PivotItem> </Pivot>按 PivotItem 时的 CS 代码:private void XmlConfigPivot_SelectionChanged(object sender, SelectionChangedEventArgs e){ PivotItem item = ((sender as Pivot).SelectedItem) as PivotItem; string header = item.Header.ToString(); Frame frame = item.Content as Frame; switch (header) { case "Layout": frame?.Navigate(typeof(LayoutTab)); break; case "Stub_tab": frame?.Navigate(typeof(StubTab)); break; }}“LayoutTab”是一个 XAML+CS 页面,它在初始化时执行某些操作,它的功能并不重要,但每次打开它时都需要清空页面。布局举例(真正的逻辑太复杂就不放这里了):public sealed partial class LayoutTab : Page{ public ObservableCollection<Sensor> sensorsCollection = new ObservableCollection<Sensor>(); public ObservableCollection<Axis> axisesCollection = new ObservableCollection<Axis>(); int selectedSensor = -1; static bool isInitializes = false; public LayoutTab() { InitData(); InitializeComponent(); isInitializes = true; }}我的问题是每次我进入页面时它都会记住上次访问的内容,比如变量“sensorsCollection”,我需要它是干净的。
1 回答
大话西游666
TA贡献1817条经验 获得超14个赞
我的猜测是您的LayoutTab页面设置为缓存,因此每次导航到同一页面都会加载其以前的属性
我的建议将NavigationCacheMode在您的页面中设置disabled为:
以编程方式:
public LayoutTab()
{
InitData();
InitializeComponent();
isInitializes = true;
NavigationCacheMode = NavigationCacheMode.Disabled
}
或内部 XAML:
<Page ...
NavigationCacheMode="Disabled"
/>
(您NavigationCacheMode可能被设置为“必需”或“启用”,因为文档指出默认缓存模式是disabled)
- 1 回答
- 0 关注
- 92 浏览
添加回答
举报
0/150
提交
取消