UWP - Create a ListView programmatically
The ListView class represents a control that displays data items in a
vertical stack in a UWP app. The UWP app developers are using a ListView to
display a collection of items stacked vertically or horizontally.
The ListView is an ItemsControl, so the .net developers can put there a collection of items of any type. The ListView data item is displayed as the string representation by default.
The developers can define the ListView control’s selection mode for single or multiple. By default, the ListView selection mode is single. They can toggle the mode by using the ListView class SelectionMode property. The ListViewSelectionMode enumeration value allows multi-selection or disabled selection.
The ListView() constructor initializes a new instance of the ListView class. The ItemsControl class ItemsSource property gets or sets an object source used to generate the content of the ItemsControl. So using this property we can populate the ListView control with items by a string array. The SelectionChanged event occurs when the currently selected item changes.
The following UWP app development tutorial demonstrates how we can create a ListView control programmatically and put it on the app layout. And how we can data bind the ListView control with a String array. Here we also add a selection changed event to the ListView control, so when the user clicks an item from the ListView, it displays the selected item’s text in a simple message dialog.
The ListView is an ItemsControl, so the .net developers can put there a collection of items of any type. The ListView data item is displayed as the string representation by default.
The developers can define the ListView control’s selection mode for single or multiple. By default, the ListView selection mode is single. They can toggle the mode by using the ListView class SelectionMode property. The ListViewSelectionMode enumeration value allows multi-selection or disabled selection.
The ListView() constructor initializes a new instance of the ListView class. The ItemsControl class ItemsSource property gets or sets an object source used to generate the content of the ItemsControl. So using this property we can populate the ListView control with items by a string array. The SelectionChanged event occurs when the currently selected item changes.
The following UWP app development tutorial demonstrates how we can create a ListView control programmatically and put it on the app layout. And how we can data bind the ListView control with a String array. Here we also add a selection changed event to the ListView control, so when the user clicks an item from the ListView, it displays the selected item’s text in a simple message dialog.
MainPage.xaml
<Page
x:Class="UniversalAppTutorials.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UniversalAppTutorials"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel
x:Name="stack_panel1"
Margin="50"
Orientation="Vertical"
Background="OrangeRed"
Padding="50"
>
</StackPanel>
</Page>
MainPage.xaml.cs
using Windows.UI.Xaml.Controls;
using Windows.UI.Popups;
namespace UniversalAppTutorials
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
// Initialize a new string array
string[] colors = {
"Crimson",
"Green",
"Blue",
"Yellow",
"Black",
"Olive",
"Magenta"
};
// Initalize a new ListView instance
ListView listView = new ListView();
// Data bind the list view with array items
listView.ItemsSource = colors;
// Add a selection changed event to list view
listView.SelectionChanged += ListView1_SelectionChanged;
// Add ListView to the StackPanel
stack_panel1.Children.Add(listView);
}
private void ListView1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
// Get the instance of ListView
ListView listView = sender as ListView;
// Get the ListView selected item text
string selectedText = listView.SelectedItem.ToString();
// Initialize a new message dialog
MessageDialog dialog = new MessageDialog("Selected : " + selectedText);
// Finally, display the selected item text on dialog
dialog.ShowAsync();
}
}
}

