我在我的应用程序中使用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);
如果您想将开关的状态保留在给定的应用程序实例中:声明一个全局变量。
否则,请研究在给定设备上存储的方法。