我认为很简单的事情就是结果不是,或者我只是不够思考:)
我有一个导航到的页面,在OnNavigateTo事件中我设置了ListPicker的SelectedIndex并且工作正常。
如果我然后触摸ListPicker并选择一个新值,则再次触发OnNavigateTo事件,新值将被原始值覆盖。
我最初的想法是简单地检查父页面名称,如果它是ListPicker,则跳过初始设置,但我似乎无法找到从哪里获取父页面名称。
任何线索?或者更好的方式我应该处理这个?
这是XAML:
<toolkit:ListPicker x:Name="Status" Margin="10,549,163,-97" Header="Status" FullModeHeader="Status" ExpansionMode="FullScreenOnly" BorderBrush="Black" Foreground="Black" Grid.ColumnSpan="2" Visibility="Visible">
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" />
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"
FontSize="43"
FontFamily="{StaticResource PhoneFontFamilyLight}"/>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
这是Loaded事件:
private void AddNote_Loaded(object sender, RoutedEventArgs e)
{
this.TicketStatus.ItemsSource = ticketStatus();
string st;
if (NavigationContext.QueryString.TryGetValue("status", out st))
{
tStatus = st;
TicketStatus.SelectedIndex = GetStatus(tStatus);
}
}
答案 0 :(得分:0)
好的,解决了它,但创建了我自己的页面列表并手动添加和删除我想要检查的页面。一点点黑客,但它有效:)