.Net Maui Views Picker Switch Complete Guide

 Last Update:2025-06-23T00:00:00     .NET School AI Teacher - SELECT ANY TEXT TO EXPLANATION.    6 mins read      Difficulty-Level: beginner

Understanding the Core Concepts of .NET MAUI Views Picker, Switch


.NET MAUI Views: Picker, Switch

When developing cross-platform applications using .NET Multi-platform App UI (.NET MAUI), you come across various UI components or controls that help in building a user-friendly interface. Two essential controls in .NET MAUI are the Picker and Switch. This detailed explanation covers the functionality, usage, and important attributes of these views.

Picker View

The Picker is a control used to display a list of options for the user to select. It provides a simple and intuitive way for users to choose an item from a collection. The selected item can be used to control the behavior or display content based on the user's choice.

Key Features:

  • Items Collection: You can populate the Picker with items using the Items property, which is of type IList<string>.
  • SelectedItem Property: This property holds the currently selected item in the Picker.
  • SelectedIndexChanged Event: Triggered whenever the user changes the selected item.
  • Title Property: Displays a title or placeholder text when no item is selected.
  • Cancel Property: When set to true, a cancel button appears on Android, allowing the user to exit without selecting an item.

Usage Example:

Here’s a basic example demonstrating how to create and use a Picker in XAML and C#:

XAML:

<Picker x:Name="picker"
        Title="Select a Fruit"
        SelectedIndexChanged="OnPickerSelectedIndexChanged">
    <Picker.Items>
        <x:String>Apple</x:String>
        <x:String>Banana</x:String>
        <x:String>Cherry</x:String>
        <x:String>Date</x:String>
    </Picker.Items>
</Picker>

C#:

private void OnPickerSelectedIndexChanged(object sender, EventArgs e)
{
    var picker = (Picker)sender;
    int selectedIndex = picker.SelectedIndex;

    if (selectedIndex != -1)
    {
        Console.WriteLine("Selected Item: " + picker.Items[selectedIndex]);
    }
}

Important Info:

  • Styling: You can customize the Picker's appearance using styles and templates.
  • Platform Customization: Some properties may behave differently on various platforms. Make sure to test the control on all targeted devices.
  • Null Handling: Always check if SelectedItem is null before using it in your code to avoid exceptions.

Switch View

The Switch is a toggle switch control that allows users to turn something on or off. It's commonly used in settings screens to enable or disable certain features.

Key Features:

  • IsToggled Property: Gets or sets whether the Switch is toggled. This is a boolean property.
  • Toggled Event: Triggered when the Switch state changes.
  • OnColor Property: Specifies the color of the thumb and track when the switch is on.
  • ThumbColor Property: Allows customization of the color of the thumb (the slider part).
  • TrackColor Property: Allows customization of the color of the track (background).

Usage Example:

Below is an example of using a Switch in XAML and C#:

XAML:

<Switch x:Name="switchControl"
        IsToggled="True"
        Toggled="OnSwitchToggled" />

C#:

private void OnSwitchToggled(object sender, ToggledEventArgs e)
{
    if (e.Value)
    {
        Console.WriteLine("Switch is ON");
    }
    else
    {
        Console.WriteLine("Switch is OFF");
    }
}

Important Info:

  • Event Handling: Always ensure that event handlers are properly defined to manage the state changes effectively.
  • Platform Differences: Some properties may not be supported on all platforms. Verify the documentation for platform-specific notes.
  • Accessibility: Provide meaningful names and descriptions to make your application accessible to all users, including those with disabilities.

Conclusion

The Picker and Switch are fundamental UI controls in .NET MAUI that enhance user interaction by allowing users to make selections and toggle settings. By understanding their properties and usage, developers can create intuitive and functional applications across multiple platforms.


Online Code run

🔔 Note: Select your programming language to check or run code at

💻 Run Code Compiler

Step-by-Step Guide: How to Implement .NET MAUI Views Picker, Switch

Step 1: Set Up Your .NET MAUI Application

First, ensure you have .NET MAUI installed. You can do this via Visual Studio 2022 (version 17.0 or later).

  1. Open Visual Studio.
  2. Create a new project.
  3. Choose "MAUI App (.NET 6)" as the project template.
  4. Follow the prompts to name your project and set the location.

Step 2: Create the User Interface

Open the MainPage.xaml file. This is where we'll add the Picker and Switch controls.

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="MauiApp.MainPage">

    <VerticalStackLayout Padding="20">
        <Label Text="Select an Item:"
               FontSize="16"
               TextColor="Black"
               Margin="0,0,0,10"/>

        <Picker x:Name="itemPicker"
                SelectedIndexChanged="OnPickerSelectedIndexChanged"
                Margin="0,0,0,20">
            <Picker.Items>
                <x:String>Item 1</x:String>
                <x:String>Item 2</x:String>
                <x:String>Item 3</x:String>
            </Picker.Items>
        </Picker>

        <Switch x:Name="toggleSwitch"
                Toggled="OnSwitchToggled"
                Margin="0,0,0,20"/>
        
        <Label x:Name="switchLabel"
               Text="Switch is Off"
               FontSize="16"
               TextColor="Black"/>
    </VerticalStackLayout>
</ContentPage>

Step 3: Add Code-Behind Logic

Open the MainPage.xaml.cs file. Here, we'll handle the events triggered by the Picker and Switch controls.

using Microsoft.Maui.Controls;

namespace MauiApp
{
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
        }

        private void OnPickerSelectedIndexChanged(object sender, EventArgs e)
        {
            Picker picker = (Picker)sender;
            int selectedIndex = picker.SelectedIndex;

            if (selectedIndex != -1)
            {
                string selectedItem = picker.Items[selectedIndex];
                DisplayAlert("Selected Item", $"You selected: {selectedItem}", "OK");
            }
        }

        private void OnSwitchToggled(object sender, ToggledEventArgs e)
        {
            switchLabel.Text = e.Value ? "Switch is On" : "Switch is Off";
        }
    }
}

Step 4: Run Your Application

  1. Set your desired target platform (e.g., Android, iOS, Windows, or macOS).
  2. Press F5 or click on the "Start" button in Visual Studio to build and run your application.

Explanation

  • Picker Control:

    • We created a Picker with three items ("Item 1", "Item 2", "Item 3").
    • The SelectedIndexChanged event is triggered when the user selects an item from the picker. We handle this event in the OnPickerSelectedIndexChanged method, where we display an alert with the selected item.
  • Switch Control:

    • The Switch control allows users to toggle between two states (On or Off).
    • The Toggled event is triggered whenever the switch is toggled. We handle this event in the OnSwitchToggled method, updating the text of the Label to indicate whether the switch is On or Off.

Conclusion

Top 10 Interview Questions & Answers on .NET MAUI Views Picker, Switch

Top 10 Questions and Answers: .NET MAUI Views - Picker and Switch

1. What is the Picker control in .NET MAUI and how do you use it?

Usage Example:

<Picker Title="Select an option" 
        TitleColor="SlateGray"
        SelectedIndexChanged="OnPickerSelectedIndexChanged">
    <Picker.Items>
        <x:String>Option 1</x:String>
        <x:String>Option 2</x:String>
        <x:String>Option 3</x:String>
    </Picker.Items>
</Picker>

Code-Behind Event Handler:

private void OnPickerSelectedIndexChanged(object sender, EventArgs e)
{
    var picker = (Picker)sender;
    int selectedIndex = picker.SelectedIndex;
    
    if (selectedIndex != -1)
    {
        string selectedOption = picker.Items[selectedIndex];
        Console.WriteLine("Selected: " + selectedOption);
    }
}

2. How can you bind a list to a Picker control in .NET MAUI?

You can bind a list to a Picker control using data binding by setting its ItemsSource property.

XAML Example:

<Picker ItemsSource="{Binding MyItems}"
        ItemDisplayBinding="{Binding Name}"
        SelectedIndexChanged="OnPickerSelectedIndexChanged" />

ViewModel Example:

public class MainViewModel
{
    public ObservableCollection<Item> MyItems { get; set; } = new ObservableCollection<Item>()
    {
        new Item { Name = "Item 1" },
        new Item { Name = "Item 2" },
        new Item { Name = "Item 3" }
    };
}

public class Item
{
    public string Name { get; set; }
}

3. What is the Switch control in .NET MAUI, and how do you use it?

Switch is a toggle control that allows the user to switch between two states: On and Off. It’s commonly used for enabling or disabling features.

Usage Example:

<Switch Toggled="OnSwitchToggled" />

Code-Behind Event Handler:

private void OnSwitchToggled(object sender, ToggledEventArgs e)
{
    var switchControl = (Switch)sender;
    bool isOn = switchControl.IsToggled;
    Console.WriteLine("Is Switch On? " + isOn);
}

4. Can the Switch control's color be customized in .NET MAUI?

Yes, you can customize the colors of the Switch control using properties like OnColor, OffColor, and ThumbColor.

Example:

<Switch OnColor="Coral"
        OffColor="DarkGray"
        ThumbColor="LightCyan"
        Toggled="OnSwitchToggled" />

5. How can you bind the Switch control to a property in .NET MAUI?

Data binding can be used to bind the IsToggled property of the Switch to a Boolean property in your ViewModel.

XAML Example:

<Switch IsToggled="{Binding IsSwitchOn, Mode=TwoWay}"
        Toggled="OnSwitchToggled" />

ViewModel Example:

public class MainViewModel : INotifyPropertyChanged
{
    private bool _isSwitchOn;
    public bool IsSwitchOn
    {
        get => _isSwitchOn;
        set
        {
            if (_isSwitchOn != value)
            {
                _isSwitchOn = value;
                OnPropertyChanged(nameof(IsSwitchOn));
            }
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged(string propertyName)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

6. Can you programmatically change the selected item in a Picker control?

Yes, you can programmatically change the selected item in a Picker control by setting its SelectedIndex or SelectedItem property.

Example:

var picker = (Picker)FindByName("MyPicker");
picker.SelectedIndex = 1; // Sets the second item as selected
// or
picker.SelectedItem = "Option 2"; // Sets "Option 2" as selected

7. Can the Picker control include multiple selection options?

The standard Picker control in .NET MAUI supports only a single selection. For multiple selections, consider using a MultiSelector, like CollectionView with SelectionMode set to Multiple.

Example:

<CollectionView SelectionMode="Multiple"
                  ItemsSource="{Binding MyItems}"
                  SelectionChanged="OnSelectionChanged">
    <!-- Content template here -->
</CollectionView>

8. How can you handle the user's selection when the Switch control is toggled?

You handle the Switch control's toggle action through the Toggled event, as demonstrated in earlier examples. You can perform actions based on whether the switch is on or off.

Example:

private void OnSwitchToggled(object sender, ToggledEventArgs e)
{
    var isSwitchOn = e.Value;
    if (isSwitchOn)
    {
        // Do something when the switch is on
    }
    else
    {
        // Do something when the switch is off
    }
}

9. What is the difference between the SelectedIndex and SelectedItem properties in a Picker control?

  • SelectedIndex is the index of the currently selected item in the Picker's Items collection.
  • SelectedItem is the actual object that is currently selected.

Example:

var picker = (Picker)FindByName("MyPicker");
int selectedIndex = picker.SelectedIndex;
object selectedItem = picker.SelectedItem;

10. How can you add custom styling to a Picker control in .NET MAUI?

You can customize the appearance of a Picker control in .NET MAUI using styles or through direct property setting. Common properties you might customize include TextColor, BackgroundColor, TitleColor, PlaceholderColor, and HeightRequest.

Example:

You May Like This Related .NET Topic

Login to post a comment.