在Xamarin Forms中重新启动活动时保持Switch值



我在我的应用程序中使用Switch,默认情况下,Switch的值为false,当我将此Switch设置为true,然后,我离开此活动并再次输入时,值重新启动为默认值。

重新启动活动时如何保持该值?

这是我的Switch控件:

<Switch HorizontalOptions="Center"
x:Name="mySwitch"
IsToggled="{Binding ToggledState ,Mode=TwoWay}"
Toggled="OnToggled"/>

我的代码:

public partial class MainPage: ContentPage {
private bool IsSwitchToggled = true;
public ViewModel viewmodel;
public MainPage() {
viewmodel = new ViewModel();
...
}
protected override void OnAppearing() {
...
}
void OnToggled(object sender, ToggledEventArgs e) {
if (IsSwitchToggled) {
IsSwitchToggled = false;
} else {
viewmodel.DoSomething(e.Value);
}
}
}

有多种方法可以做到这一点。就你而言。在App.xaml.cs 中声明布尔值

public partial class App : Xamarin.Forms.Application
{
public static bool IsSwitchToggled = true;
}

然后使用在您的页面中访问

App.IsSwitchToggled 

将值分配给viewModel中的开关和带有的PageLoad

youSwitchName.IsToggled = App.IsSwitchToggled;

更新开关值时,还要更新App.IsSwitchToggled

App.IsSwitchToggled = true; // false

还有其他简单的方法可以做到这一点,比如使用Essential插件将其存储在首选项中。

Preference.Set(nameof(stringName),false); 
Preference.Get(nameof(stringName),false);

如果您想将开关的状态保留在给定的应用程序实例中:声明一个全局变量。

否则,请研究在给定设备上存储的方法。

最新更新