List Controls

WPF offers several controls that can present multiple items. ListBox, ComboBox, and ListView can all present a linear sequence of items. TreeView presents a hierarchy of items. The TabControl may not seem like an obvious relative of the ListBox, but it shares the basic features: it presents a sequence of items (tab pages) and lets the user choose which is the current item. All of these controls share a common base class, ItemsControl.

The simplest way to use any of these controls is to add content to their Items property. Example 5-16 shows the markup for a ComboBox with various elements added to its Items.[24]. This example illustrates that all list controls allow any content to be used as a list item—we're not restricted to plain text. This content model makes these list controls much more powerful than their Win32 equivalents.

Example 5-16. Content in Items

<ComboBox>
  <Button>Click!</Button>
  <TextBlock>Hello, world</TextBlock>
  <StackPanel Orientation="Horizontal">
    <TextBlock>Ellipse:</TextBlock>
    <Ellipse Fill="Blue" Width="100" />
  </StackPanel>
</ComboBox>

You also can use this technique with ListBox, TabControl and ListView. (TreeView is a little more involved, as the whole point of that control is to show a tree of items, rather than a simple list. We'll see how to do that later.) As you can see in Figure 5-18, each control presents our items in its own way. The ListBox and ComboBox generate a line in the list for each item. The ListView does something similar, although ...

Get Programming WPF, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.