Xamarin使用Picker构建搜索栏

时间:2018-05-14 17:00:25

标签: xamarin xamarin.forms

我有一个xamarin表单应用程序,我想使用搜索栏控件,焦点将拉出一个选择器。无论如何我可以扩展搜索栏以提供此功能吗?换句话说,我不希望用户在搜索栏框中输入文本,而是从选择列表中选择它。任何例子都将不胜感激。

2 个答案:

答案 0 :(得分:0)

当您在元素上调用Focus()时,会显示Picker对话框,因此您可以放置​​一个隐藏的Picker,并从ToolbarItem的Click Handler调用该方法。

    <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" 
                 xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" 
                 x:Class="MyApp.Views.MyPage" 
                 Title="My Page Title" 
                 x:Name="MyPage">
        <ContentPage.ToolbarItems>
            <ToolbarItem Text="ShowPicker" Clicked="ShowPicker">
            </ToolbarItem>
        </ContentPage.ToolbarItems>
        <ContentPage.Content>
            <DatePicker x:Name="MyPicker" IsVisible="false" />
        </ContentPage.Content>
    </ContentPage>



namespace MyApp.Views
{
    public partial class MyPage : ContentPage
        {    
            public ItemsPage()
            {
                InitializeComponent();    
            }

            void ShowPicker(object sender, EventArgs e)
            {
                MyPicker.Focus();
            }
        }
}

答案 1 :(得分:0)

您可以查看使用Xamarin表单的XFX控件。

https://github.com/XamFormsExtended/Xfx.Controls

在页面顶部,添加对的命名空间引用:

xmlns:xfx="clr-namespace:Xfx;assembly=Xfx.Controls"

然后按如下所示使用控件:

<!-- XfxComboBox-->
<xfx:XfxComboBox                
             Placeholder="Select make"
             SelectedItem="{Binding SelectedVehicleMake}"
             Text="{Binding Description}"
             ItemsSource="{Binding AssetMakes}"/>       

此控件允许绑定到项目源和选定的项目