1. MainWindow.xaml
<Window x:Class="MultiSelectDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:ViewModel="clr-namespace:MultiSelectDemo"
xmlns:control="clr-namespace:MultiSelectComboBox;assembly=MultiSelectComboBox"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<ViewModel:ViewModel x:Key="ViewModel"/>
</Window.Resources>
<Grid DataContext="{Binding Source={StaticResource ViewModel}}">
<control:MultiSelectComboBox Width="100" Height="30" ItemsSource="{Binding Items}"
DefaultText="input jjj"
SelectedItems="{Binding SelectedItems,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
/>
</Grid>
</Window>
2. MainWindowViewModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
namespace MultiSelectDemo
{
public class MainWindowViewModel: NotificationObject
{
private Dictionary<string, object> _items;
private Dictionary<string, object> _selectedItems;
public Dictionary<string, object> Items
{
get
{
return _items;
}
set
{
_items = value;
NotifyPropertyChanged("Items");
}
}
public Dictionary<string, object> SelectedItems
{
get
{
return _selectedItems;
}
set
{
_selectedItems = value;
NotifyPropertyChanged("SelectedItems");
}
}
public MainWindowViewModel()
{
Items = new Dictionary<string, object>();
Items.Add("Chennai", "MAS");
Items.Add("Trichy", "TPJ");
Items.Add("Bangalore", "SBC");
Items.Add("Coimbatore", "CBE");
SelectedItems = new Dictionary<string, object>();
SelectedItems.Add("Chennai", "MAS");
SelectedItems.Add("Trichy", "TPJ");
}
private void Submit()
{
foreach (KeyValuePair<string, object> s in SelectedItems)
MessageBox.Show(s.Key);
}
}
}
原文:http://www.cnblogs.com/zisezhixin/p/4106907.html