Use Panel as a ListBoxItem
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="WPF" Height="300" Width="300">
<StackPanel>
<ListBox SelectionChanged="OuterListBox_SelectionChanged" Name="outerListBox">
<ListBoxItem Content="Item 1" FontFamily="Tahoma" HorizontalContentAlignment="Left" />
<ListBoxItem Content="Item 2" FontFamily="Algerian" FontSize="16" HorizontalContentAlignment="Center" />
<ListBoxItem Content="Item 3" FontSize="20" HorizontalContentAlignment="Right" />
<Button Content="Button directly in a list" Margin="5" />
<ListBoxItem HorizontalContentAlignment="Center" Margin="5">
<Button Content="Button wrapped in ListBoxItem" />
</ListBoxItem>
<ListBox Height="50" Margin="5">
<ListBoxItem Content="Inner List Item 1" Selected="InnerListBoxItem_Selected" />
<ListBoxItem Content="Inner List Item 2" Selected="InnerListBoxItem_Selected" />
<ListBoxItem Content="Inner List Item 3" Selected="InnerListBoxItem_Selected" />
<ListBoxItem Content="Inner List Item 4" Selected="InnerListBoxItem_Selected" />
</ListBox>
<StackPanel Margin="5" Orientation="Horizontal">
<Label Content="Enter some text:" />
<TextBox MinWidth="150" />
</StackPanel>
</ListBox>
<TextBlock Text="No item currently selected." Margin="10" HorizontalAlignment="Center" Name="txtSelectedItem" />
</StackPanel>
</Window>
//File:Window.xaml.vb
Imports System.Windows
Imports System.Windows.Controls
Namespace WpfApplication1
Public Partial Class Window1
Inherits Window
Public Sub New()
InitializeComponent()
End Sub
Private Sub InnerListBoxItem_Selected(sender As Object, e As RoutedEventArgs)
Dim item As ListBoxItem = TryCast(e.OriginalSource, ListBoxItem)
If item IsNot Nothing Then
MessageBox.Show(Convert.ToString(item.Content) & " was selected.", Title)
End If
End Sub
Private Sub OuterListBox_SelectionChanged(sender As Object, e As SelectionChangedEventArgs)
Dim item As Object = outerListBox.SelectedItem
If item Is Nothing Then
txtSelectedItem.Text = "No item currently selected."
Else
txtSelectedItem.Text = item.ToString()
End If
End Sub
End Class
End Namespace
Related examples in the same category