One of the most beautiful things in WPF is how easy it is to customize controls (especially when compared to WinForms). Based on the descriptions you provided, all of these controls can be created quite simply using standard toolbar controls; I do not think that you will need to purchase third-party solutions. Starting at the top:
LookUpEdit - You can get it for free using the WPF combo boxMemoExEdit - Using the standard TextBox control and the Popup primitive, you can duplicate this effect with relatively little effort.CheckedComboBoxEdit - WPF ComboBox is an ItemsControl , and that means it supports custom item templates. You can do this easily with a couple of XAML lines.CheckedListBoxControl is the same for ListBox using the ItemTemplate property, which you can do this as soon as possible.
Here is a brief example of how you can implement a control similar to CheckedComboBoxEdit . First, the code:
public partial class CustomControls : Window { public ObservableCollection<CustomItem> Items { get; set; } public CustomControls() { Items = new ObservableCollection<CustomItem>(); Items.Add(new CustomItem() { Name = "Item 1", Checked = true }); Items.Add(new CustomItem() { Name = "Item 2", Checked = false }); Items.Add(new CustomItem() { Name = "Item 3", Checked = false }); InitializeComponent(); } } public class CustomItem { public bool Checked { get; set; } public string Name { get; set; } }
Now XAML for Window :
<Window x:Class="TestWpfApplication.CustomControls" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="CustomControls" Height="200" Width="200" DataContext="{Binding RelativeSource={RelativeSource Self}}"> <ComboBox ItemsSource="{Binding Items}" VerticalAlignment="Center" HorizontalAlignment="Center" Width="100"> <ComboBox.ItemTemplate> <DataTemplate> <CheckBox Content="{Binding Name}" IsChecked="{Binding Checked}"/> </DataTemplate> </ComboBox.ItemTemplate> </ComboBox>
What the ItemTemplate property ItemTemplate : "for each item in this control, make me one of them." Therefore, for each item in the Items the ComboBox collection, a CheckBox is created, and its Content bound to the Name property of your item class and its IsChecked property associated with Checked .
And here is the end result:
alt text http://img155.imageshack.us/img155/9379/customcontrols.png
source share