List box that uses data binding to populate the list box items. : ListBox Item « Windows Presentation Foundation « VB.Net Tutorial






<Canvas xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:src="clr-namespace:ListBoxEvent"  
    x:Class="ListBoxEvent.Pane1">
  <Canvas.Resources>
    <src:myColors x:Key="Colors"/>
  </Canvas.Resources>

    <StackPanel Margin="10, 10, 3, 3">
      <WrapPanel Width="500" Orientation="Horizontal" Name="rectanglesPanel">
        <WrapPanel.Resources>
          <Style TargetType="Rectangle">
            <Setter Property="Height" Value="20"/>
            <Setter Property="Width" Value="20"/>
            <Setter Property="Margin" Value="5"/>
          </Style>
        </WrapPanel.Resources>
      </WrapPanel>
      <ListBox Name="myListBox" HorizontalAlignment="Left" SelectionMode="Extended" 
            Width="265" Height="55" Background="HoneyDew" SelectionChanged="myListBox_SelectionChanged"
            ItemsSource="{Binding Source={StaticResource Colors}}" IsSynchronizedWithCurrentItem="true">
      </ListBox>
    </StackPanel>


</Canvas>
//File:Window.xaml.vb

Imports System
Imports System.ComponentModel
Imports System.Windows
Imports System.Windows.Controls
Imports System.Windows.Documents
Imports System.Windows.Navigation
Imports System.Windows.Shapes
Imports System.Windows.Data
Imports System.Windows.Media
Imports System.Collections.ObjectModel

Namespace ListBoxEvent
  Public Class myColors
    Inherits ObservableCollection(Of String)
    Public Sub New()
      Add("LightBlue")
      Add("Pink")
      Add("Red")
      Add("Purple")
      Add("Blue")
      Add("Green")
    End Sub
  End Class
  Public Partial Class Pane1
    Inherits Canvas
    Public Sub New()
      MyBase.New()
      InitializeComponent()
    End Sub
    Private Sub myListBox_SelectionChanged(sender As Object, args As SelectionChangedEventArgs)
      Dim converter As New BrushConverter()
      For Each color As String In args.AddedItems
        If GetRectangle(color) Is Nothing Then
          Dim aRect As New Rectangle()
          aRect.Fill = DirectCast(converter.ConvertFrom(color), Brush)
          aRect.Tag = color
          rectanglesPanel.Children.Add(aRect)

        End If
      Next
      For Each color As String In args.RemovedItems
        Dim removedItem As FrameworkElement = GetRectangle(color)
        If removedItem IsNot Nothing Then
          rectanglesPanel.Children.Remove(removedItem)
        End If
      Next
    End Sub

    Private Function GetRectangle(color As String) As FrameworkElement
      For Each rect As FrameworkElement In rectanglesPanel.Children
        If rect.Tag.ToString() = color Then
          Return rect
        End If
      Next

      Return Nothing
    End Function

  End Class

End Namespace
WPF List Box That Uses Data Binding To Populate The List Box Items








16.31.ListBox Item
16.31.1.ListBox with Image itemListBox with Image item
16.31.2.Use Panel as a ListBoxItemUse Panel as a ListBoxItem
16.31.3.Get Item At Index Position [0]Get Item At Index Position [0]
16.31.4.Handles ListBoxItem Selected events for the ListBoxItems in the inner ListBox.Handles ListBoxItem Selected events for the ListBoxItems in the inner ListBox.
16.31.5.Different Font Family and Size for each ListBoxItemDifferent Font Family and Size for each ListBoxItem
16.31.6.List box with text and non-text content in the list box items.List box with text and non-text content in the list box items.
16.31.7.List box that uses data binding to populate the list box items.List box that uses data binding to populate the list box items.
16.31.8.Load the Items in a ListBox AsynchronouslyLoad the Items in a ListBox Asynchronously
16.31.9.Change the Appearance of Alternate Items in a ListChange the Appearance of Alternate Items in a List
16.31.10.Change the Appearance of a List Item When It's SelectedChange the Appearance of a List Item When It's Selected