Xamarin,如何立即清除选取器和条目中的数据。使用 montemagno Xamarin.plugins.setting

Xamarin, How do I clear data from pickers and Entry right away. Using the montemagno Xamarin.plugins.setting

当我点击清除时,我想从我的选择器和条目中清除保存的数据。但是我点击它,它并没有立即清除。我必须关闭应用程序然后重新打开然后它就清楚了。我试图推送空字符串 "" 但它给了我错误然后再次打开它冻结了我的应用程序。

void clearHandle_Clicked(object sender, System.EventArgs e)
{   
Settings.ClearAllData();
}

//then added to push empty string but got error
//UIApplication.Main(args, null, "AppDelegate");


void clearHandle_Clicked(object sender, System.EventArgs e)
{
DisplayAlert("EDIT", "Are you sure you want to clear data ", "OK");
nameEntry.Text = "";
nxPicker.SelectedItem = "";
locationPicker1.SelectedItem = "";
locationPicker2.SelectedItem = "";
locationPicker3.SelectedItem = "";
locationPicker4.SelectedItem = "";
locationPicker5.SelectedItem = "";
locationPicker6.SelectedItem = "";
locationPicker7.SelectedItem = "";
locationPicker8.SelectedItem = "";
Settings.ClearAllData();

}

有趣的是,有时 运行 在 Xamarin 中的委托上单击事件,包括 Forms 和 Native。所以我建议将您的明确请求包装在 UI 调度员委托中,如下所示:

void clearHandle_Clicked(object sender, System.EventArgs e)
{   
    Xamarin.Forms.Device.BeginInvokeOnMainThread(()=>{
        Settings.ClearAllData();
    });    
}


void clearHandle_Clicked(object sender, System.EventArgs e)
{
    DisplayAlert("EDIT", "Are you sure you want to clear data ", "OK");
    nameEntry.Text = "";
    nxPicker.SelectedItem = "";
    locationPicker1.SelectedItem = "";
    locationPicker2.SelectedItem = "";
    locationPicker3.SelectedItem = "";
    locationPicker4.SelectedItem = "";
    locationPicker5.SelectedItem = "";
    locationPicker6.SelectedItem = "";
    locationPicker7.SelectedItem = "";
    locationPicker8.SelectedItem = "";
    Xamarin.Forms.Device.BeginInvokeOnMainThread(()=>{
        Settings.ClearAllData();
    });
}