[英]xamarin forms clear picker selection
我是Xamarin以及c#和xaml的新手,所以这是一次非常学习的经历。 我正在努力做我认为是一项简单的任务(明确挑选者选择),但事实证明它已成为一项挑战。
期望的功能:具有选择器选择的页面,进行选择,将选择保存到变量,移动到不同的页面然后清除所做的选择,因此当返回到第一页时没有进行选择。
我已经尝试使用picker.Items.Clear()并设置SelectedIndex = -1但我一直得到OutOfRangeException。 我尝试过这篇文章,但无法使用任何选项: 如果在xamarin表单中选择它,如何清除选择器?
我不想将选择器设置为第一个选项,我希望它为空,因此显示选择器标题,这是它在第一次运行时的工作方式,但是当我进行选择并移动到下一页时,当我回去,我的初步选择仍然是。
希望所有人都能理解我想要实现的目标。 以下是我的基本代码,任何帮助或方向将不胜感激。
MainPage.xaml中:
<StackLayout>
<Label Text="Select an option:"
VerticalOptions="Start"
HorizontalOptions="Start"
/>
<Picker x:Name="OptionSelect"
Title="Click to Select"
SelectedIndexChanged="OptionSelect_OnSelectedIndexChanged"
/>
</StackLayout>
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
事件分配它,当null
:
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
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.