gpt4 book ai didi

c# - xamarin 选择器控件 selectedindexchange 事件仅在完成选择项目时引发

转载 作者:太空狗 更新时间:2023-10-30 00:17:58 24 4
gpt4 key购买 nike

我正在使用 Xamarin.Forms.Picker 控件并处理 SelectedIndexChanged 事件。

用户滚动浏览选择器控件中的项目,然后选择预先构建到选择器控件中的“完成”按钮。无论如何要在用户按下“完成”而不是索引更改时进行捕获。

当用户滚动浏览项目时,索引可能会更改多次,我不想处理不必要的事件,因为我只关心最后选择的项目。

提前致谢

<Picker x:Name="PickerMinStars" Title="Min number of 5 stars"  SelectedIndexChanged="Handle_PickerStarsSelectedIndexChanged">
</Picker>

最佳答案

可以通过三种解决方法来满足您的要求。

简单

在 Picker 上设置 unfocus 事件,当 picker 将要关闭时触发(点击 Done 按钮或 picker 的外部区域)。

中等

延迟 SelectedIndexChanged 事件触发,直到您点击完成按钮。

picker.On<iOS>().SetUpdateMode(UpdateMode.WhenFinished);

复杂

创建 Custom Renderers 来处理 Done 按钮点击事件。

public class MyPickerRenderer : PickerRenderer
{
protected override void OnElementChanged(ElementChangedEventArgs<Picker> e)
{
base.OnElementChanged(e);

if(e.OldElement != null)
{
var toolbar = (UIToolbar)Control.InputAccessoryView;
var doneBtn = toolbar.Items[1];

doneBtn.Clicked -= DoneBtn_Clicked;
}

if(e.NewElement != null)
{
var toolbar = (UIToolbar)Control.InputAccessoryView;
var doneBtn = toolbar.Items[1];

doneBtn.Clicked += DoneBtn_Clicked;
}
}

void DoneBtn_Clicked(object sender, EventArgs e)
{
Console.WriteLine("Clicked!!!!");
}
}

引用

How can we handle the done button click event for a Xamarin Forms Picker?

Picker Selection Event

关于c# - xamarin 选择器控件 selectedindexchange 事件仅在完成选择项目时引发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48000670/

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