gpt4 book ai didi

c# - xamarin 形成清除选择器选择

转载 作者:行者123 更新时间:2023-11-30 17:30:12 24 4
gpt4 key购买 nike

我是 Xamarin 以及 c# 和 xaml 的新手,所以这是一次很好的学习经历。我正在尝试完成我认为是一项简单的任务(清除选择器选择),但事实证明它已成为一项相当大的挑战。

所需的功能:带有选择器选择的页面,进行选择,将选择保存到变量,移动到不同的页面,然后清除所做的选择,以便在返回第一页时不会进行选择。

我已经尝试使用 picker.Items.Clear() 并设置 SelectedIndex = -1,但我始终遇到 OutOfRangeException。我试过这篇文章,但无法使任何选项起作用:How to clear picker if It is selected in xamarin forms?

我不想将选择器设置为第一个选项,我希望它为空,以便显示选择器标题,这是它首次运行时的工作方式,但当我进行选择并移至下一页时,当我回去时,我最初的选择仍然存在。

希望所有这些都能理解我正在努力实现的目标。以下是我的基本代码,如有任何帮助或指导,我们将不胜感激。

主页.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());
}

最佳答案

clear picker selection?

Picker 实例的 SelectedItem 属性设置为 null

因此,使用您的代码示例并防止在分配 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
}

关于c# - xamarin 形成清除选择器选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50343234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com