protected override void OnNavigatedTo(NavigationEventArgs e)
{
if (null == e)
{
throw new ArgumentNullException("e");
}
base.OnNavigatedTo(e);
// Restore Value if returning to application (to avoid inconsistent state)
if (State.ContainsKey(StateKey_Value))
{
State.Remove(StateKey_Value);
// Back out from picker page for consistency with behavior of core pickers in this scenario
if (NavigationService.CanGoBack)
{
NavigationService.GoBack();
return;
}
}
// Automatically uppercase the text for the header.
if (null != HeaderText)
{
HeaderTitle.Text = HeaderText.ToUpper(CultureInfo.CurrentCulture);
}
Picker.DataContext = Items;
Picker.SelectionMode = SelectionMode;
if (null != FullModeItemTemplate)
{
Picker.ItemTemplate = FullModeItemTemplate;
}
if (SelectionMode == SelectionMode.Single)
{
ApplicationBar.IsVisible = false;
Picker.SelectedItem = SelectedItem;
}
else
{
ApplicationBar.IsVisible = true;
Picker.ItemContainerStyle = (Style)Resources["ListBoxItemCheckedStyle"];
foreach (object item in Items)
{
if (null != SelectedItems && SelectedItems.Contains(item))
{
Picker.SelectedItems.Add(item);
}
}
}
}