public ListViewCombos() { ListView list = new ListView (); var indexField = new DataField<int> (); var indexField2 = new DataField<int> (); var itemsField = new DataField<ItemCollection> (); ListStore store = new ListStore (indexField, indexField2, itemsField); list.DataSource = store; list.GridLinesVisible = GridLines.Horizontal; var comboCellView = new ComboBoxCellView { Editable = true, SelectedIndexField = indexField }; comboCellView.Items.Add (1, "one"); comboCellView.Items.Add (2, "two"); comboCellView.Items.Add (3, "three"); list.Columns.Add (new ListViewColumn ("List 1", comboCellView)); var comboCellView2 = new ComboBoxCellView { Editable = true, SelectedIndexField = indexField2, ItemsField = itemsField }; list.Columns.Add (new ListViewColumn ("List 2", comboCellView2)); int p = 0; for (int n = 0; n < 10; n++) { var r = store.AddRow (); store.SetValue (r, indexField, n % 3); var col = new ItemCollection (); for (int i = 0; i < 3; i++) { col.Add (p, "p" + p); p++; } store.SetValues (r, indexField2, n % 3, itemsField, col); } PackStart (list, true); }
public override void Initialize (OptionsDialog dialog, object dataObject) { base.Initialize (dialog, dataObject); config = (SolutionRunConfigInfo)dataObject; store = new ListStore (selectedField, projectNameField, projectField, runConfigField, projectRunConfigsField); listView = new ListView (store); var col1 = new ListViewColumn (GettextCatalog.GetString ("Solution Item")); var cb = new CheckBoxCellView (selectedField); cb.Toggled += SelectionChanged; cb.Editable = true; col1.Views.Add (cb); col1.Views.Add (new TextCellView (projectNameField)); listView.Columns.Add (col1); var configSelView = new ComboBoxCellView (runConfigField); configSelView.Editable = true; configSelView.ItemsField = projectRunConfigsField; var col2 = new ListViewColumn (GettextCatalog.GetString ("Run Configuration"), configSelView); listView.Columns.Add (col2); foreach (var it in config.Solution.GetAllSolutionItems ().Where (si => si.SupportsExecute ()).OrderBy (si => si.Name)) { var row = store.AddRow (); var si = config.EditedConfig.Items.FirstOrDefault (i => i.SolutionItem == it); var sc = si?.RunConfiguration?.Name ?? it.GetDefaultRunConfiguration ()?.Name; var configs = new ItemCollection (); foreach (var pc in it.GetRunConfigurations ()) configs.Add (pc.Name); store.SetValues (row, selectedField, si != null, projectNameField, it.Name, projectField, it, runConfigField, sc, projectRunConfigsField, configs); } }