The ColumnPicker functionality is helpful in toggling the visibility of columns at runtime. This blog gives a very simple code to add this in C1DataGrid.

Below is the simple code which adds the functionality to the C1DataGrid for both WPF and Silverlight.

 var _dgmenu = new C1ContextMenu();
 var cpitem = new C1MenuItem() { Header = "Column Picker" };
 cpitem.Click += (s, e) =>
 {
    var window = new C1Window() { Header = "Column Picker", Height = 300, Width = 300, ShowMaximizeButton = false, ShowMinimizeButton = false };
    var columns = new ListBox();
    columns.ItemTemplate = this.Resources["lbitemtemplate"] as DataTemplate;
    columns.ItemsSource = dg.Columns;  //dg is C1DataGrid
    window.Content = columns;
    window.CenterOnScreen();
    window.Show();
 };
 _dgmenu.Items.Add(cpitem);
 C1ContextMenuService.SetContextMenu(dg, _dgmenu);


Please refer to the attached sample for detailed implementation.

Download Sample