Getting started with .NET MAUI Picker (SfPicker)
3 Oct 20239 minutes to read
This section explains how to add the Picker control. It covers only the basic features needed to get started with the Syncfusion Picker.
Creating an application using the .NET MAUI Picker
-
Create a new .NET MAUI application in Visual Studio.
-
Syncfusion .NET MAUI components are available on nuget.org. To add
SfPickerto your project, open the NuGet package manager in Visual Studio, search for Syncfusion.Maui.Picker, then install it. -
To initialize the control, import the control namespace
Syncfusion.Maui.Pickerin XAML or C# code. -
Initialize
SfPicker.
<ContentPage
. . .
xmlns:picker="clr-namespace:Syncfusion.Maui.Picker;assembly=Syncfusion.Maui.Picker">
<picker:SfPicker />
</ContentPage>using Syncfusion.Maui.Picker;
. . .
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
SfPicker picker = new SfPicker();
this.Content = picker;
}
}Register the handler
The Syncfusion.Maui.Core NuGet is a dependent package for all Syncfusion controls of .NET MAUI. In the MauiProgram.cs file, register the handler for Syncfusion core.
using Syncfusion.Maui.Core.Hosting;
namespace GettingStarted
{
public static class MauiProgram
{
public static MauiApp CreateMauiApp()
{
var builder = MauiApp.CreateBuilder();
builder.ConfigureSyncfusionCore();
builder
.UseMauiApp<App>()
.ConfigureFonts(fonts =>
{
fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
fonts.AddFont("Segoe-mdl2.ttf", "SegoeMDL2");
});
return builder.Build();
}
}
}Set header to the Picker
The SfPicker control allows you to add the header text by setting the [Text] property in the [PickerHeaderView]. To enable the header view by setting the [Height] property in the [PickerHeaderView].
<picker:SfPicker x:Name="picker">
<picker:SfPicker.HeaderView>
<picker:PickerHeaderView Text="Select a color" Height="40" />
</picker:SfPicker.HeaderView>
</picker:SfPicker>SfPicker picker = new SfPicker();
picker.HeaderView = new PickerHeaderView()
{
Text = "Select a color",
Height = 40,
};
this.Content = picker;
Add picker items to the picker
The .NET MAUI Picker control is a data-bound control. Hence, you must create a data collection and bind it to the picker control.
- Create a simple Observable Collection of data for the picker,
public class ItemInfo
{
private ObservableCollection<object> dataSource = new ObservableCollection<object>()
{
"Pink", "Green", "Blue", "Yellow", "Orange", "Purple", "SkyBlue", "PaleGreen"
};
public ObservableCollection<object> DataSource
{
get
{
return dataSource;
}
set
{
dataSource = value;
}
}
public ItemInfo()
{
}
}- Bind the Collection to picker
The Picker control allows you to bind data collection by setting the [ItemsSource] property from the [PickerColumn]. Bind data collection in both XAML and C#.
<picker:SfPicker x:Name="picker">
<picker:SfPicker.HeaderView>
<picker:PickerHeaderView Text="Select a color" Height="40" />
</picker:SfPicker.HeaderView>
<picker:SfPicker.Columns>
<picker:PickerColumn ItemsSource="{Binding DataSource}" />
</picker:SfPicker.Columns>
</picker:SfPicker>
<ContentPage.BindingContext>
<local:ItemInfo />
</ContentPage.BindingContext>
ItemInfo itemInfo = new ItemInfo();
SfPicker picker = new SfPicker()
{
Columns = new ObservableCollection<PickerColumn>()
{
new PickerColumn()
{
ItemsSource = itemInfo.DataSource,
}
}
};
this.Content = picker;
Set footer to the Picker
In SfPicker control, validation buttons (OK and Cancel) can be customized by setting the [OkButtonText] and [CancelButtonText] properties in the [PickerFooterView]. It allows you to confirm or cancel the selected item. The OkButtonText can be enabled using the [ShowOkButton] property in the [PickerFooterView].
<picker:SfPicker x:Name="Picker">
<picker:SfPicker.FooterView>
<picker:PickerFooterView ShowOkButton="True" Height="40" />
</picker:SfPicker.FooterView>
</picker:SfPicker>SfPicker picker = new SfPicker();
picker.FooterView= new PickerFooterView()
{
ShowOkButton = true,
Height = 40,
};
this.Content = picker;
Set column header to the Picker items
The SfPicker control allows you to add the column header text by setting the [HeaderText] property in the [PickerColumn], and you need to add the column header height by setting the [Height] property in the [PickerColumnHeaderView]. Its text style and background color are customizable.
<picker:SfPicker x:Name="picker">
<picker:SfPicker.HeaderView>
<picker:PickerHeaderView Text="Select a color" Height="40" />
</picker:SfPicker.HeaderView>
<picker:SfPicker.Columns>
<picker:PickerColumn HeaderText="Colors"
ItemsSource="{Binding DataSource}" />
</picker:SfPicker.Columns>
<picker:SfPicker.ColumnHeaderView>
<picker:PickerColumnHeaderView Height="40" />
</picker:SfPicker.ColumnHeaderView>
</picker:SfPicker>ItemInfo itemInfo = new ItemInfo();
SfPicker picker = new SfPicker()
{
HeaderView = new PickerHeaderView()
{
Text = "Select a color",
Height = 40,
},
Columns = new ObservableCollection<PickerColumn>()
{
new PickerColumn()
{
HeaderText = "Colors",
ItemsSource = itemInfo.DataSource,
}
},
ColumnHeaderView = new PickerColumnHeaderView()
{
Height = 40,
},
};
this.Content = picker;
Set height and width to the Picker
The SfPicker control allows you to change the height and width by using the [HeightRequest] and [WidthRequest] properties in the [SfPicker].
<picker:SfPicker x:Name="Picker"
HeightRequest="280"
WidthRequest="300">
</picker:SfPicker>SfPicker picker = new SfPicker()
{
HeightRequest = 280,
WidthRequest = 300,
};
this.Content = picker;