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 ...