ListView Class

Definition

Represents a control that displays a list of data items.

public ref class ListView : System::Windows::Controls::ListBox
[System.Windows.StyleTypedProperty(Property="ItemContainerStyle", StyleTargetType=typeof(System.Windows.Controls.ListViewItem))]
public class ListView : System.Windows.Controls.ListBox
[<System.Windows.StyleTypedProperty(Property="ItemContainerStyle", StyleTargetType=typeof(System.Windows.Controls.ListViewItem))>]
type ListView = class
    inherit ListBox
Public Class ListView
Inherits ListBox
Inheritance
Attributes

Examples

The following example shows how to create a ListView control that implements a GridView as its View. The illustration in the Remarks section is taken from this example.


<ListView ItemsSource="{Binding Source=
                       {StaticResource EmployeeInfoDataSource}}">

  <ListView.View>

    <GridView AllowsColumnReorder="true"
              ColumnHeaderToolTip="Employee Information">

      <GridViewColumn DisplayMemberBinding=
                          "{Binding Path=FirstName}" 
                      Header="First Name" Width="100"/>
        
                  <GridViewColumn DisplayMemberBinding=
                          "{Binding Path=LastName}" 
                      Width="100">
                      <GridViewColumnHeader>Last Name
                          <GridViewColumnHeader.ContextMenu>
                          <ContextMenu  MenuItem.Click="LastNameCM_Click"  
                                        Name="LastNameCM">
                              <MenuItem Header="Ascending" />
                              <MenuItem Header="Descending" />
                          </ContextMenu>
                          </GridViewColumnHeader.ContextMenu>
                      </GridViewColumnHeader>
                  </GridViewColumn>

                  <GridViewColumn DisplayMemberBinding=
                          "{Binding Path=EmployeeNumber}" 
                      Header="Employee No." Width="100"/>
    </GridView>

  </ListView.View>
</ListView>

Remarks

ListView is an ItemsControl, which means it can contain a collection of objects of any type (such as string, image, or panel). For more information, see the ItemsControl class.

The presentation of the data items in a ListView is defined by its view mode, which is specified by the View property. Windows Presentation Foundation (WPF) provides a GridView view mode that partitions the ListView data item content into columns. The properties and methods on GridView and its related classes style and specify the content of the columns.

The following illustration shows a ListView with a GridView view.

ListView with GridView output

You can also define custom views by creating a class that derives from ViewBase. For more information, see How to: Create a Custom View Mode for a ListView.

If you define a custom ItemContainerStyle for a ListView control and also define an ItemTemplate, you must include a ContentPresenter in the ItemContainerStyle. The ContentPresenter is required for the ItemTemplate to work correctly.

To avoid alignment issues in a GridView view mode, do not add content or set properties that affect the width of an item in the ItemContainerStyle of a ListView. To prevent alignment issues, use properties and templates that are defined for the GridView view mode. This includes properties and templates that are defined for classes that are used in a GridView view mode, such as GridViewColumn and GridViewColumnHeader.

Two ListView controls cannot share the same view. To specify a view that can be used more than one time, use templates or styles.

Do not use the HorizontalContentAlignment and VerticalContentAlignment properties for ListView content that is displayed by using a GridView. To specify the alignment of content in a column of a GridView, define a CellTemplate.

Displaying a large number of items may cause performance issues. See Optimizing Performance: Controls for more information.

Customizing the ListView Control

To apply the same property settings to multiple ListView controls, use the Style property. You can modify the default ControlTemplate to give the control a unique appearance. For more information about creating a ControlTemplate, see How to create a template for a control. To see the parts and states that are specific to the ListView, see ListView Styles and Templates.

Dependency properties for this control might be set by the control's default style. If a property is set by a default style, the property might change from its default value when the control appears in the application. The default style is determined by which desktop theme is used when the application is running.

Note

Setting a visual property only has an effect if that property is both present in the control's default template and set by using a TemplateBinding.

Constructors

Name Description
ListView()

Initializes a new instance of the ListView class.

Fields

Name Description
ViewProperty

Identifies the View dependency property.

Properties

Name Description
ActualHeight

Gets the rendered height of this element.

(Inherited from FrameworkElement)
ActualWidth

Gets the rendered width of this element.

(Inherited from FrameworkElement)
AllowDrop

Gets or sets a value indicating whether this element can be used as the target of a drag-and-drop operation. This is a dependency property.

(Inherited from UIElement)
AlternationCount

Gets or sets the number of alternating item containers in the ItemsControl, which enables alternating containers to have a unique appearance.

(Inherited from ItemsControl)
AnchorItem

Gets or sets the item that is initially selected when SelectionMode is Extended.

(Inherited from ListBox)
AreAnyTouchesCaptured

Gets a value that indicates whether at least one touch is captured to this element.

(Inherited from UIElement)
AreAnyTouchesCapturedWithin

Gets a value that indicates whether at least one touch is captured to this element or to any child elements in its visual tree.

(Inherited from UIElement)
AreAnyTouchesDirectlyOver

Gets a value that indicates whether at least one touch is pressed over this element.

(Inherited from UIElement)
AreAnyTouchesOver

Gets a value that indicates whether at least one touch is pressed over this element or any child elements in its visual tree.

(Inherited from UIElement)
Background

Gets or sets a brush that describes the background of a control.

(Inherited from Control)
BindingGroup

Gets or sets the BindingGroup that is used for the element.

(Inherited from FrameworkElement)
BitmapEffect
Obsolete.
Obsolete.

Gets or sets a bitmap effect that applies directly to the rendered content for this element. This is a dependency property.

(Inherited from UIElement)
BitmapEffectInput
Obsolete.
Obsolete.

Gets or sets an input source for the bitmap effect that applies directly to the rendered content for this element. This is a dependency property.

(Inherited from UIElement)
BorderBrush

Gets or sets a brush that describes the border background of a control.

(Inherited from Control)
BorderThickness

Gets or sets the border thickness of a control.

(Inherited from Control)
CacheMode

Gets or sets a cached representation of the UIElement.

(Inherited from UIElement)
Clip

Gets or sets the geometry used to define the outline of the contents of an element. This is a dependency property.

(Inherited from UIElement)
ClipToBounds

Gets or sets a value indicating whether to clip the content of this element (or content coming from the child elements of this element) to fit into the size of the containing element. This is a dependency property.

(Inherited from UIElement)
CommandBindings

Gets a collection of CommandBinding objects associated with this element. A CommandBinding enables command handling for this element, and declares the linkage between a command, its events, and the handlers attached by this element.

(Inherited from UIElement)
ContextMenu

Gets or sets the context menu element that should appear whenever the context menu is requested through user interface (UI) from within this element.

(Inherited from FrameworkElement)
Cursor

Gets or sets the cursor that displays when the mouse pointer is over this element.

(Inherited from FrameworkElement)
DataContext

Gets or sets the data context for an element when it participates in data binding.

(Inherited from FrameworkElement)
DefaultStyleKey

Gets or sets the key to use to reference the style for this control, when theme styles are used or defined.

(Inherited from FrameworkElement)
DependencyObjectType

Gets the DependencyObjectType that wraps the CLR type of this instance.

(Inherited from DependencyObject)
DesiredSize

Gets the size that this element computed during the measure pass of the layout process.

(Inherited from UIElement)
Dispatcher

Gets the Dispatcher this DispatcherObject is associated with.

(Inherited from DispatcherObject)
DisplayMemberPath

Gets or sets a path to a value on the source object to serve as the visual representation of the object.

(Inherited from ItemsControl)
Effect

Gets or sets the bitmap effect to apply to the UIElement. This is a dependency property.

(Inherited from UIElement)
FlowDirection

Gets or sets the direction that text and other user interface (UI) elements flow within any parent element that controls their layout.

(Inherited from FrameworkElement)
Focusable

Gets or sets a value that indicates whether the element can receive focus. This is a dependency property.

(Inherited from UIElement)
FocusVisualStyle

Gets or sets a property that enables customization of appearance, effects, or other style characteristics that will apply to this element when it captures keyboard focus.

(Inherited from FrameworkElement)
FontFamily

Gets or sets the font family of the control.

(Inherited from Control)
FontSize

Gets or sets the font size.

(Inherited from Control)
FontStretch

Gets or sets the degree to which a font is condensed or expanded on the screen.

(Inherited from Control)
FontStyle

Gets or sets the font style.

(Inherited from Control)
FontWeight

Gets or sets the weight or thickness of the specified font.

(Inherited from Control)
ForceCursor

Gets or sets a value that indicates whether this FrameworkElement should force the user interface (UI) to render the cursor as declared by the Cursor property.

(Inherited from FrameworkElement)
Foreground

Gets or sets a brush that describes the foreground color.

(Inherited from Control)
GroupStyle

Gets a collection of GroupStyle objects that define the appearance of each level of groups.

(Inherited from ItemsControl)
GroupStyleSelector

Gets or sets a method that enables you to provide custom selection logic for a GroupStyle to apply to each group in a collection.

(Inherited from ItemsControl)
HandlesScrolling

Gets a value that indicates whether the ListBox supports scrolling.

(Inherited from ListBox)
HasAnimatedProperties

Gets a value indicating whether this element has any animated properties.

(Inherited from UIElement)
HasEffectiveKeyboardFocus

Gets a value that indicates whether the UIElement has focus.

(Inherited from UIElement)
HasItems

Gets a value that indicates whether the ItemsControl contains items.

(Inherited from ItemsControl)
Height

Gets or sets the suggested height of the element.

(Inherited from FrameworkElement)
HorizontalAlignment

Gets or sets the horizontal alignment characteristics applied to this element when it is composed within a parent element, such as a panel or items control.

(Inherited from FrameworkElement)
HorizontalContentAlignment

Gets or sets the horizontal alignment of the control's content.

(Inherited from Control)
InheritanceBehavior

Gets or sets the scope limits for property value inheritance, resource key lookup, and RelativeSource FindAncestor lookup.

(Inherited from FrameworkElement)
InputBindings

Gets the collection of input bindings associated with this element.

(Inherited from UIElement)
InputScope

Gets or sets the context for input used by this FrameworkElement.

(Inherited from FrameworkElement)
IsArrangeValid

Gets a value indicating whether the computed size and position of child elements in this element's layout are valid.

(Inherited from UIElement)
IsEnabled

Gets or sets a value indicating whether this element is enabled in the user interface (UI). This is a dependency property.

(Inherited from UIElement)
IsEnabledCore

Gets a value that becomes the return value of IsEnabled in derived classes.

(Inherited from UIElement)
IsFocused

Gets a value that determines whether this element has logical focus. This is a dependency property.

(Inherited from UIElement)
IsGrouping

Gets a value that indicates whether the control is using grouping.

(Inherited from ItemsControl)
IsHitTestVisible

Gets or sets a value that declares whether this element can possibly be returned as a hit test result from some portion of its rendered content. This is a dependency property.

(Inherited from UIElement)
IsInitialized

Gets a value that indicates whether this element has been initialized, either during processing by a XAML processor, or by explicitly having its EndInit() method called.

(Inherited from FrameworkElement)
IsInputMethodEnabled

Gets a value indicating whether an input method system, such as an Input Method Editor (IME), is enabled for processing the input to this element.

(Inherited from UIElement)
IsKeyboardFocused

Gets a value indicating whether this element has keyboard focus. This is a dependency property.

(Inherited from UIElement)
IsKeyboardFocusWithin

Gets a value indicating whether keyboard focus is anywhere within the element or its visual tree child elements. This is a dependency property.

(Inherited from UIElement)
IsLoaded

Gets a value that indicates whether this element has been loaded for presentation.

(Inherited from FrameworkElement)
IsManipulationEnabled

Gets or sets a value that indicates whether manipulation events are enabled on this UIElement.

(Inherited from UIElement)
IsMeasureValid

Gets a value indicating whether the current size returned by layout measure is valid.

(Inherited from UIElement)
IsMouseCaptured

Gets a value indicating whether the mouse is captured to this element. This is a dependency property.

(Inherited from UIElement)
IsMouseCaptureWithin

Gets a value that determines whether mouse capture is held by this element or by child elements in its visual tree. This is a dependency property.

(Inherited from UIElement)
IsMouseDirectlyOver

Gets a value that indicates whether the position of the mouse pointer corresponds to hit test results, which take element compositing into account. This is a dependency property.

(Inherited from UIElement)
IsMouseOver

Gets a value indicating whether the mouse pointer is located over this element (including child elements in the visual tree). This is a dependency property.

(Inherited from UIElement)
IsSealed

Gets a value that indicates whether this instance is currently sealed (read-only).

(Inherited from DependencyObject)
IsStylusCaptured

Gets a value indicating whether the stylus is captured by this element. This is a dependency property.

(Inherited from UIElement)
IsStylusCaptureWithin

Gets a value that determines whether stylus capture is held by this element, or an element within the element bounds and its visual tree. This is a dependency property.

(Inherited from UIElement)
IsStylusDirectlyOver

Gets a value that indicates whether the stylus position corresponds to hit test results, which take element compositing into account. This is a dependency property.

(Inherited from UIElement)
IsStylusOver

Gets a value indicating whether the stylus cursor is located over this element (including visual child elements). This is a dependency property.

(Inherited from UIElement)
IsSynchronizedWithCurrentItem

Gets or sets a value that indicates whether a Selector should keep the SelectedItem synchronized with the current item in the Items property.

(Inherited from Selector)
IsTabStop

Gets or sets a value that indicates whether a control is included in tab navigation.

(Inherited from Control)
IsTextSearchCaseSensitive

Gets or sets a value that indicates whether case is a condition when searching for items.

(Inherited from ItemsControl)
IsTextSearchEnabled

Gets or sets a value that indicates whether TextSearch is enabled on the ItemsControl instance.

(Inherited from ItemsControl)
IsVisible

Gets a value indicating whether this element is visible in the user interface (UI). This is a dependency property.

(Inherited from UIElement)
ItemBindingGroup

Gets or sets the BindingGroup that is copied to each item in the ItemsControl.

(Inherited from ItemsControl)
ItemContainerGenerator

Gets the ItemContainerGenerator that is associated with the control.

(Inherited from ItemsControl)
ItemContainerStyle

Gets or sets the Style that is applied to the container element generated for each item.

(Inherited from ItemsControl)
ItemContainerStyleSelector

Gets or sets custom style-selection logic for a style that can be applied to each generated container element.

(Inherited from ItemsControl)
Items

Gets the collection used to generate the content of the ItemsControl.

(Inherited from ItemsControl)
ItemsPanel

Gets or sets the template that defines the panel that controls the layout of items.

(Inherited from ItemsControl)
ItemsSource

Gets or sets a collection used to generate the content of the ItemsControl.

(Inherited from ItemsControl)
ItemStringFormat

Gets or sets a composite string that specifies how to format the items in the ItemsControl if they are displayed as strings.

(Inherited from ItemsControl)
ItemTemplate

Gets or sets the DataTemplate used to display each item.

(Inherited from ItemsControl)
ItemTemplateSelector

Gets or sets the custom logic for choosing a template used to display each item.

(Inherited from ItemsControl)
Language

Gets or sets localization/globalization language information that applies to an element.

(Inherited from FrameworkElement)
LayoutTransform

Gets or sets a graphics transformation that should apply to this element when layout is performed.

(Inherited from FrameworkElement)
LogicalChildren

Gets an enumerator for the logical child objects of the ItemsControl object.

(Inherited from ItemsControl)
Margin

Gets or sets the outer margin of an element.

(Inherited from FrameworkElement)
MaxHeight

Gets or sets the maximum height constraint of the element.

(Inherited from FrameworkElement)
MaxWidth

Gets or sets the maximum width constraint of the element.

(Inherited from FrameworkElement)
MinHeight

Gets or sets the minimum height constraint of the element.

(Inherited from FrameworkElement)
MinWidth

Gets or sets the minimum width constraint of the element.

(Inherited from FrameworkElement)
Name

Gets or sets the identifying name of the element. The name provides a reference so that code-behind, such as event handler code, can refer to a markup element after it is constructed during processing by a XAML processor.

(Inherited from FrameworkElement)
Opacity

Gets or sets the opacity factor applied to the entire UIElement when it is rendered in the user interface (UI). This is a dependency property.

(Inherited from UIElement)
OpacityMask

Gets or sets an opacity mask, as a Brush implementation that is applied to any alpha-channel masking for the rendered content of this element. This is a dependency property.

(Inherited from UIElement)
OverridesDefaultStyle

Gets or sets a value that indicates whether this element incorporates style properties from theme styles.

(Inherited from FrameworkElement)
Padding

Gets or sets the padding inside a control.

(Inherited from Control)
Parent

Gets the logical parent element of this element.

(Inherited from FrameworkElement)
PersistId
Obsolete.

Gets a value that uniquely identifies this element.

(Inherited from UIElement)
RenderSize

Gets (or sets) the final render size of this element.

(Inherited from UIElement)
RenderTransform

Gets or sets transform information that affects the rendering position of this element. This is a dependency property.

(Inherited from UIElement)
RenderTransformOrigin

Gets or sets the center point of any possible render transform declared by RenderTransform, relative to the bounds of the element. This is a dependency property.

(Inherited from UIElement)
Resources

Gets or sets the locally-defined resource dictionary.

(Inherited from FrameworkElement)
SelectedIndex

Gets or sets the index of the first item in the current selection or returns negative one (-1) if the selection is empty.

(Inherited from Selector)
SelectedItem

Gets or sets the first item in the current selection or returns null if the selection is empty.

(Inherited from Selector)
SelectedItems

Gets the currently selected items.

(Inherited from ListBox)
SelectedValue

Gets or sets the value of the SelectedItem, obtained by using SelectedValuePath.

(Inherited from Selector)
SelectedValuePath

Gets or sets the path that is used to get the SelectedValue from the SelectedItem.

(Inherited from Selector)
SelectionMode

Gets or sets the selection behavior for a ListBox.

(Inherited from ListBox)
SnapsToDevicePixels

Gets or sets a value that determines whether rendering for this element should use device-specific pixel settings during rendering. This is a dependency property.

(Inherited from UIElement)
Style

Gets or sets the style used by this element when it is rendered.

(Inherited from FrameworkElement)
StylusPlugIns

Gets a collection of all stylus plug-in (customization) objects associated with this element.

(Inherited from UIElement)
TabIndex

Gets or sets a value that determines the order in which elements receive focus when the user navigates through controls by using the TAB key.

(Inherited from Control)
Tag

Gets or sets an arbitrary object value that can be used to store custom information about this element.

(Inherited from FrameworkElement)
Template

Gets or sets a control template.

(Inherited from Control)
TemplatedParent

Gets a reference to the template parent of this element. This property is not relevant if the element was not created through a template.

(Inherited from FrameworkElement)
ToolTip

Gets or sets the tool-tip object that is displayed for this element in the user interface (UI).

(Inherited from FrameworkElement)
TouchesCaptured

Gets all touch devices that are captured to this element.

(Inherited from UIElement)
TouchesCapturedWithin

Gets all touch devices that are captured to this element or any child elements in its visual tree.

(Inherited from UIElement)
TouchesDirectlyOver

Gets all touch devices that are over this element.

(Inherited from UIElement)
TouchesOver

Gets all touch devices that are over this element or any child elements in its visual tree.

(Inherited from UIElement)
Triggers

Gets the collection of triggers established directly on this element, or in child elements.

(Inherited from FrameworkElement)
Uid

Gets or sets the unique identifier (for localization) for this element. This is a dependency property.

(Inherited from UIElement)
UseLayoutRounding

Gets or sets a value that indicates whether layout rounding should be applied to this element's size and position during layout.

(Inherited from FrameworkElement)
VerticalAlignment

Gets or sets the vertical alignment characteristics applied to this element when it is composed within a parent element such as a panel or items control.

(Inherited from FrameworkElement)
VerticalContentAlignment

Gets or sets the vertical alignment of the control's content.

(Inherited from Control)
View

Gets or sets an object that defines how the data is styled and organized in a ListView control.

Visibility

Gets or sets the user interface (UI) visibility of this element. This is a dependency property.

(Inherited from UIElement)
VisualBitmapEffect
Obsolete.
Obsolete.

Gets or sets the BitmapEffect value for the Visual.

(Inherited from Visual)
VisualBitmapEffectInput
Obsolete.
Obsolete.

Gets or sets the BitmapEffectInput value for the Visual.

(Inherited from Visual)
VisualBitmapScalingMode

Gets or sets the BitmapScalingMode for the Visual.

(Inherited from Visual)
VisualCacheMode

Gets or sets a cached representation of the Visual.

(Inherited from Visual)
VisualChildrenCount

Gets the number of visual child elements within this element.

(Inherited from FrameworkElement)
VisualClearTypeHint

Gets or sets the ClearTypeHint that determines how ClearType is rendered in the Visual.

(Inherited from Visual)
VisualClip

Gets or sets the clip region of the Visual as a Geometry value.

(Inherited from Visual)
VisualEdgeMode

Gets or sets the edge mode of the Visual as an EdgeMode value.

(Inherited from Visual)
VisualEffect

Gets or sets the bitmap effect to apply to the Visual.

(Inherited from Visual)
VisualOffset