Как переключаться между страницами без загрузки новой страницы в Xamarin, чтобы при внесении изменений на страницу и повторной загрузке в том же сеансе я мог видеть внесенные изменения, но когда я закрываюприложение и открыть его снова изменения не прошло?
Как видите, когда я перехожу на страницу "Doel sport" и возвращаюсь на страницу "Doel gewicht", радиоКнопка все еще выбрана.Но когда я затем возвращаюсь на страницу «Doel sport», переключатель больше не выбирается (а страница загружается два раза, я не знаю, почему?)
Страница «Doel gwicht» xaml:
<controls:AnimationPage
xmlns:controls="clr-namespace:FormsControls.Base;assembly=FormsControls.Base" xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="TimeToSport.Views.GegevensGewichtDoel"
xmlns:syncfusion="clr-namespace:Syncfusion.XForms.Buttons;assembly=Syncfusion.Buttons.XForms"
Title="Doel gewicht">
<ContentPage.ToolbarItems>
<ToolbarItem Text="Volgende" Clicked="Volgende_clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="UWP" Value="volgende.png"/>
</OnPlatform>
</ToolbarItem.Icon>
</ToolbarItem>
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout Orientation="Horizontal"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Padding="10,30,0,0"
Spacing="10">
<syncfusion:SfRadioGroup x:Name="radioGroup">
<Label Text="Wat is je doel m.b.t. gewicht?" TextColor="Black" FontSize="17"/>
<syncfusion:SfRadioButton x:Name="btn_Afvallen" Text="Afvallen" TextColor="Gray" StateChanged="RadioButton_StateChanged"/>
<syncfusion:SfRadioButton x:Name="btn_OpGewichtBlijven" TextColor="Gray" Text="Op gewicht blijven" StateChanged="RadioButton_StateChanged"/>
<syncfusion:SfRadioButton x:Name="btn_Aankomen" TextColor="Gray" Text="Aankomen" StateChanged="RadioButton_StateChanged"/>
</syncfusion:SfRadioGroup>
</StackLayout>
</ContentPage.Content>
</controls:AnimationPage>
Страница "Doel Gwicht" cs:
void CreateRadioButtons()
{
SfRadioGroup radioGroup = new SfRadioGroup();
SfRadioButton btn_Afvallen = new SfRadioButton();
btn_Afvallen.IsChecked = false;
btn_Afvallen.Text = "Afvallen";
btn_Afvallen.StateChanged += RadioButton_StateChanged;
SfRadioButton btn_OpGewichtBlijven = new SfRadioButton();
btn_OpGewichtBlijven.Text = "Op gewicht blijven";
btn_OpGewichtBlijven.StateChanged += RadioButton_StateChanged;
SfRadioButton btn_Aankomen = new SfRadioButton();
btn_Aankomen.Text = "Aankomen";
btn_Aankomen.StateChanged += RadioButton_StateChanged;
radioGroup.Children.Add(btn_Afvallen);
radioGroup.Children.Add(btn_OpGewichtBlijven);
radioGroup.Children.Add(btn_Aankomen);
}
private void RadioButton_StateChanged(object sender, StateChangedEventArgs e)
{
Navigation.PushAsync(new GegevensSportDoel());
}
void Volgende_clicked(object sender, EventArgs e)
{
Navigation.PushAsync(new GegevensSportDoel());
}
Страница "Doel Sport" xaml:
<controls:AnimationPage.PageAnimation>
<controls:PushPageAnimation Duration="Medium" Subtype="FromRight" />
</controls:AnimationPage.PageAnimation>
<ContentPage.ToolbarItems>
<ToolbarItem Text="Klaar" Clicked="Klaar_clicked">
<ToolbarItem.Icon>
<OnPlatform x:TypeArguments="FileImageSource">
<On Platform="UWP" Value="volgende.png"/>
</OnPlatform>
</ToolbarItem.Icon>
</ToolbarItem>
</ContentPage.ToolbarItems>
<ContentPage.Content>
<StackLayout Orientation="Horizontal"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
Padding="10,30,0,0"
Spacing="10">
<syncfusion:SfRadioGroup x:Name="radioGroup">
<Label Text="Wat is je doel m.b.t. sport?" TextColor="Black" FontSize="17"/>
<syncfusion:SfRadioButton x:Name="btn_SterkerWorden" Text="Afvallen" TextColor="Gray" />
<syncfusion:SfRadioButton x:Name="btn_ConditieOpbouwen" TextColor="Gray" Text="Op gewicht blijven" />
<syncfusion:SfRadioButton x:Name="btn_GeenVanBeide" TextColor="Gray" Text="Aankomen"/>
</syncfusion:SfRadioGroup>
</StackLayout>
</ContentPage.Content>
</controls:AnimationPage>
Страница "Doel Sport" cs:
void CreateRadioButtons()
{
SfRadioGroup radioGroup = new SfRadioGroup();
SfRadioButton btn_Afvallen = new SfRadioButton();
btn_Afvallen.IsChecked = false;
btn_Afvallen.Text = "Afvallen";
SfRadioButton btn_OpGewichtBlijven = new SfRadioButton();
btn_OpGewichtBlijven.Text = "Op gewicht blijven";
SfRadioButton btn_Aankomen = new SfRadioButton();
btn_Aankomen.Text = "Aankomen";
radioGroup.Children.Add(btn_Afvallen);
radioGroup.Children.Add(btn_OpGewichtBlijven);
radioGroup.Children.Add(btn_Aankomen);
}
void Klaar_clicked(object sender, EventArgs e)
{
App.Current.MainPage = new NavigationPage(new ItemsPage());
}