The WPF Multi Column DropDown Control (Multi Column ComboBox) displays multiple columns in a dropdown. The Syncfusion DataGrid control is embedded for a rich user interface. Users can define the columns in a dropdown as required. The control’s rich feature set includes autocompletion, filtering, sorting, and dropdown customization.
The Multi Column DropDown Control supports all popular data sources like SQL server, Oracle, and IEnumerable, and data providers like LINQ to SQL, ADO.NET, Entity Framework, and WCF Data Service. It allows you to design an application in the MVVM pattern, such as binding selected items.
Users can define multiple columns in a dropdown. Generate columns automatically from the underlying data object properties. Or generate the required columns alone in the dropdown.
The WPF Multi Column DropDown makes the selection from drop-down grid easy with support for both single and multiple selection with highlight an item by hovering over it in a drop-down. Supports customizing the appearance of the selection text color and background color.
Single selection allows users to select a single item from the drop-down grid.
Select all items from the drop-down with one click through the header check box.
A customized string helps separate the selected items displayed in the Multi Column Dropdown.
Column width can be adjusted (auto fit) based on the content of any column or column header in a dropdown. All the columns can be fit within the viewport of the dropdown. Users can also resize the columns like in Excel by resizing column header.
Users can customize the appearance of a dropdown style:
Adapt the control to rest of your business application with built-in themes. The different built-in themes are:
Supports right to left (RTL) direction for users working in right-to-left languages like Hebrew, Arabic, or Persian.
The Multi Column DropDown control is compatible with Coded UI and UFT (formerly QTP) automation tools to automate applications.
Easily get started with the WPF Multi Column Dropdown using a few simple lines of XAML or C# code example as demonstrated below. Also explore our WPF Multi Column Dropdown Example that shows you how to render and configure the Multi Column Dropdown.
<Window x:Class="SfMultiColumnDropDownDemo.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:SfMultiColumnDropDownDemo"
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
mc:Ignorable="d"
WindowStartupLocation="CenterScreen"
Title="MainWindow" Height="450" Width="800">
<Window.DataContext>
<local:ViewModel/>
</Window.DataContext>
<Grid>
<syncfusion:SfMultiColumnDropDownControl x:Name="sfMultiColumn"
ItemsSource="{Binding Orders}"
DisplayMember="OrderID"
Width="175"
Height="30"/>
</Grid>
</Window>
namespace SfMultiColumnDropDownDemo
{
public class OrderInfo
{
int orderID;
string customerId;
string country;
string customerName;
string shippingCity;
public int OrderID
{
get { return orderID; }
set { orderID = value; }
}
public string CustomerID
{
get { return customerId; }
set { customerId = value; }
}
public string CustomerName
{
get { return customerName; }
set { customerName = value; }
}
public string Country
{
get { return country; }
set { country = value; }
}
public string ShipCity
{
get { return shippingCity; }
set { shippingCity = value; }
}
public OrderInfo(int orderId, string customerName, string country, string customerId, string shipCity)
{
this.OrderID = orderId;
this.CustomerName = customerName;
this.Country = country;
this.CustomerID = customerId;
this.ShipCity = shipCity;
}
}
public class ViewModel
{
private ObservableCollection<OrderInfo> _orders;
public ObservableCollection<OrderInfo> Orders
{
get { return _orders; }
set { _orders = value; }
}
public ViewModel()
{
_orders = new ObservableCollection<OrderInfo>();
this.GenerateOrders();
}
private void GenerateOrders()
{
_orders.Add(new OrderInfo(1001, "Maria Anders", "Germany", "ALFKI", "Berlin"));
_orders.Add(new OrderInfo(1002, "Ana Trujilo", "Mexico", "ANATR", "Mexico D.F."));
_orders.Add(new OrderInfo(1003, "Antonio Moreno", "Mexico", "ANTON", "Mexico D.F."));
_orders.Add(new OrderInfo(1004, "Thomas Hardy", "UK", "AROUT", "London"));
_orders.Add(new OrderInfo(1005, "Christina Berglund", "Sweden", "BERGS", "Lula"));
_orders.Add(new OrderInfo(1006, "Hanna Moos", "Germany", "BLAUS", "Mannheim"));
}
}
}
No, this is a commercial product and requires a paid license. However, a free community license is also available for companies and individuals whose organizations have less than $1 million USD in annual gross revenue, 5 or fewer developers, and 10 or fewer total employees.
A good place to start would be our comprehensive getting started documentation.
Greatness—it’s one thing to say you have it, but it means more when others recognize it. Syncfusion is proud to hold the following industry awards.