xamarin形成清晰的选择器

我是Xamarin以及c#和xaml的新手,所以这是一次非常学习的经历。 我正在尝试做我认为简单的任务(明确挑选者选择),但事实certificate它已成为一项挑战。

期望的function:具有选择器选择的页面,进行选择,将选择保存到变量,移动到不同的页面然后清除所做的选择,因此当返回到第一页时没有进行选择。

我尝试使用picker.Items.Clear()并设置SelectedIndex = -1,但我一直得到OutOfRangeException。 我尝试过这篇文章,但无法使用任何选项: 如果在xamarin表单中选择它,如何清除选择器?

我不想将选择器设置为第一个选项,我希望它为空,因此显示选择器标题,这是它在第一次运行时的工作方式,但是当我进行选择并移动到下一页,当我回去,我的初步选择仍在进行中。

希望一切都有意义,我正在努力实现。 以下是我的基本代码,任何帮助或方向将不胜感激。

MainPage.xaml中:

  

MainPage.xaml.cs中:

  public MainPage() { InitializeComponent(); OptionSelect.Items.Add("Option 1"); OptionSelect.Items.Add("Option 2"); OptionSelect.Items.Add("Option 3"); } public void OptionSelect_OnSelectedIndexChanged(object sender, EventArgs e) { var option = OptionSelect.Items[OptionSelect.SelectedIndex]; //OptionSelect.Items.Clear(); //OptionSelect.Items.Add("Option 1"); //OptionSelect.Items.Add("Option 2"); //OptionSelect.Items.Add("Option 3"); //OptionSelect.SelectedIndex = -1; Navigation.PushAsync(new Page1()); } 

明确的选择器选择?

Picker实例上的SelectedItem属性设置为null

因此,使用您的代码示例并在分配时禁止重新触发OnSelectedIndexChanged事件:

 public void OptionSelect_OnSelectedIndexChanged(object sender, EventArgs e) { var option = OptionSelect.SelectedItem; // Prevent setting the SelectedItem from refiring event OptionSelect.SelectedIndexChanged -= OptionSelect_OnSelectedIndexChanged; OptionSelect.SelectedItem = null; OptionSelect.SelectedIndexChanged += OptionSelect_OnSelectedIndexChanged; // Do something with option object }