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); } }
void CreateView() { store = new TreeStore(itemField, descriptionField, propertyNameField, propertiesField, notificationPreferenceField, notificationPreferencesField); treeView = new TreeView(store); treeView.SelectionChanged += (object sender, EventArgs e) => { if (treeView.SelectedRow != null) { var item = store.GetNavigatorAt(treeView.SelectedRow)?.GetValue(itemField) as AbstractCodeStyleOptionViewModel; if (item != null) { this.viewModel.SetOptionAndUpdatePreview(item.SelectedPreference.IsChecked, item.Option, item.GetPreview()); return; } } return; }; var col = treeView.Columns.Add(GettextCatalog.GetString("Description"), descriptionField); col.Expands = true; var propertyCellView = new ComboBoxCellView(propertyNameField); propertyCellView.Editable = true; propertyCellView.ItemsField = propertiesField; propertyCellView.SelectionChanged += delegate(object sender, WidgetEventArgs e) { var treeNavigator = store.GetNavigatorAt(treeView.CurrentEventRow); if (treeNavigator == null) { return; } var item = treeNavigator.GetValue(itemField); if (item == null) { return; } var text2 = treeNavigator.GetValue(propertyNameField); GLib.Timeout.Add(10, delegate { var text = treeNavigator.GetValue(propertyNameField); foreach (var pref in item.Preferences) { if (pref.Name == text) { item.SelectedPreference = pref; this.viewModel.SetOptionAndUpdatePreview(pref.IsChecked, item.Option, item.GetPreview()); } } return(false); }); }; col = new ListViewColumn(GettextCatalog.GetString("Property"), propertyCellView); col.Expands = true; treeView.Columns.Add(col); var severityCellView = new ComboBoxCellView(notificationPreferenceField); severityCellView.Editable = true; severityCellView.ItemsField = notificationPreferencesField; col = new ListViewColumn(GettextCatalog.GetString("Severity"), severityCellView); treeView.Columns.Add(col); this.PackStart(treeView, true, true); var wrappedEditor = Xwt.Toolkit.CurrentEngine.WrapWidget((Gtk.Widget)viewModel.TextViewHost, Xwt.NativeWidgetSizing.DefaultPreferredSize); this.PackEnd(wrappedEditor, true, true); FillTreeStore(); }