UWP - ListView HeaderTemplate
The ListView class represents a control that displays data items in a
vertical stack in a UWP app. The UWP 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 ListViewBase class’s HeaderTemplate property gets or sets the DataTemplate used to display the content of the view header. This property value is a DataTemplate instance which is the template that specifies the visualization of the header object. The default value of this property is null. So using this HeaderTemplate property we can display a customized header for the ListView control.
The DataTemplate class describes the visual structure of a data object. This class is used for data binding for specific elements in the template that display the data values.
The UWP app developers commonly use a DataTemplate to specify the visual representation of ListView data. The DataTemplate objects are especially useful when they are binding an ItemsControl such as a ListView to an entire collection. In the following UWP app development tutorial code, we used the HeaderTemplate to display a header for the ListView control.
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 ListViewBase class’s HeaderTemplate property gets or sets the DataTemplate used to display the content of the view header. This property value is a DataTemplate instance which is the template that specifies the visualization of the header object. The default value of this property is null. So using this HeaderTemplate property we can display a customized header for the ListView control.
The DataTemplate class describes the visual structure of a data object. This class is used for data binding for specific elements in the template that display the data values.
The UWP app developers commonly use a DataTemplate to specify the visual representation of ListView data. The DataTemplate objects are especially useful when they are binding an ItemsControl such as a ListView to an entire collection. In the following UWP app development tutorial code, we used the HeaderTemplate to display a header for the ListView control.
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="AliceBlue"
Padding="25"
>
<ListView
x:Name="ListView1"
Background="Snow"
>
<ListView.HeaderTemplate>
<DataTemplate>
<StackPanel
Background="Crimson"
BorderBrush="DarkRed"
BorderThickness="0,0,0,2"
>
<TextBlock
Foreground="Snow"
FontStyle="Italic"
FontWeight="Bold"
FontSize="25"
Text="Select a color from this list."
Padding="7"
FontFamily="Calibri"
/>
</StackPanel>
</DataTemplate>
</ListView.HeaderTemplate>
</ListView>
</StackPanel>
</Page>
MainPage.xaml.cs
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Media;
using Windows.UI;
using Windows.UI.Xaml;
namespace UniversalAppTutorials
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
// Initialize a new string array
string[] colors = {
"Red",
"Green",
"Orange",
"Bisque",
"Beige",
"Coral"
};
// Get the list view item collection
ItemCollection ic = ListView1.Items;
// Loop through the array items
for (int index = 0; index < colors.Length; index++)
{
// Initialize a new ListViewItem instance
ListViewItem item = new ListViewItem();
// Add the content to item
item.Content = colors[index];
// Set the list item height
item.Height = 50;
if (index % 2 == 0)
{
// Set the regular item background
item.Background = new SolidColorBrush(Colors.SeaGreen);
}
else
{
// Set the alternate item background
item.Background = new SolidColorBrush(Colors.MediumSeaGreen);
// Set the alternate item content alignment
item.HorizontalContentAlignment = HorizontalAlignment.Right;
}
// Finally, add the item to the list view item collection
ic.Add(item);
}
}
}
}