Mega Code Archive
This list box allows items to be selected in groups by using the SHIFT key and mouse or the CTRL key and space key
//File:Window.xaml.cs
using System;
using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Windows.Media;
using System.Collections.ObjectModel;
namespace ListBoxEvent
{
public class myColors : ObservableCollection
{
public myColors()
{
Add("LightBlue");
Add("Pink");
Add("Red");
Add("Purple");
Add("Blue");
Add("Green");
}
}
public partial class Pane1 : Canvas
{
public Pane1() : base()
{
InitializeComponent();
}
void myListBox_SelectionChanged(object sender, SelectionChangedEventArgs args)
{
BrushConverter converter = new BrushConverter();
foreach (string color in args.AddedItems)
{
if (GetRectangle(color) == null)
{
Rectangle aRect = new Rectangle();
aRect.Fill = (Brush) converter.ConvertFrom(color);
aRect.Tag = color;
rectanglesPanel.Children.Add(aRect);
}
}
foreach (string color in args.RemovedItems)
{
FrameworkElement removedItem = GetRectangle(color);
if (removedItem != null)
{
rectanglesPanel.Children.Remove(removedItem);
}
}
}
FrameworkElement GetRectangle(string color)
{
foreach (FrameworkElement rect in rectanglesPanel.Children)
{
if (rect.Tag.ToString() == color)
return rect;
}
return null;
}
}
}