Вы можете указать, установлен ли флажок при открытии следующей страницы:
NavigationService.Navigate(new Uri("/AnotherPage.xaml?chkd=" + checkBox1.IsChecked, UriKind.Relative));
Затем вы можете запросить это в событии OnNavigatedTo
на «другой» странице:
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string isChecked;
if (NavigationContext.QueryString.TryGetValue("chkd", out isChecked))
{
if (bool.Parse(isChecked))
{
//
}
}
}
Редактировать:
Чтобы передать несколько значений, просто добавьте их в строку запроса:
NavigationService.Navigate(new Uri("/AnotherPage.xaml?chk1=" + checkBox1.IsChecked + "&chk2=" + checkBox2.IsChecked, UriKind.Relative));
(Возможно, вы захотите отформатировать код немного лучше)
Затем вы можете получить каждый параметр по очереди из
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string is1Checked;
if (NavigationContext.QueryString.TryGetValue("chk1", out is1Checked))
{
if (bool.Parse(is1Checked))
{
//
}
}
string is2Checked;
if (NavigationContext.QueryString.TryGetValue("chk2", out is2Checked))
{
if (bool.Parse(is2Checked))
{
//
}
}
}
. Если вы хотите передать все больше и больше значений, это приведет к путанице с большим количеством дублирующегося кода.Вместо индивидуальной передачи нескольких значений вы можете объединить их все вместе:
var checks = string.Format("{0}|{1}", checkBox1.IsChecked, checkBox2.IsChecked);
NavigationService.Navigate(new Uri("/AnotherPage.xaml?chks=" + checks, UriKind.Relative));
Затем можно разбить строку и разобрать части по отдельности.