public void GetSelectedComponents(ref List <ComponentFactoryInformation> components, ref List <Component> instances) { components.Clear(); instances.Clear(); // cannot operate on "instances" or "components" directly due to the lambda expression below (won't compile) List <ComponentFactoryInformation> components_ = new List <ComponentFactoryInformation>(); List <Component> instances_ = new List <Component>(); m_TreeStore.Foreach((TreeModel model, TreePath path, TreeIter iter) => { UIComponentDescriptor item = model.GetValue(iter, 0) as UIComponentDescriptor; if (item != null) { if (item.Selected) { if (item.Instance == null) { components_.Add(item.ComponentFactoryInformation); } else { instances_.Add(item.Instance); } } } return(false); }); // cannot operate on "instances" or "components" directly due to the lambda expression below (won't compile) components = components_; instances = instances_; }
private void BuildTree() { // Setup thumbnail column { CellRendererPixbuf renderer = new CellRendererPixbuf(); TreeViewColumn column = new TreeViewColumn("", renderer); column.SetCellDataFunc(renderer, (TreeViewColumn _column, CellRenderer _cell, TreeModel _model, TreeIter _iter) => { UIComponentDescriptor c = _model.GetValue(_iter, 0) as UIComponentDescriptor; //(_cell as Gtk.CellRendererPixbuf).Pixbuf = _model.GetValue( _iter, 1) as Gdk.Pixbuf; }); m_View.AppendColumn(column); } // Setup name column { CellRendererText renderer = new CellRendererText(); TreeViewColumn column = new TreeViewColumn("Name", renderer); // set data in cell column.SetCellDataFunc(renderer, (TreeViewColumn _column, CellRenderer _cell, TreeModel _model, TreeIter _iter) => { UIComponentDescriptor c = _model.GetValue(_iter, 0) as UIComponentDescriptor; //(_cell as Gtk.CellRendererText).Text = c.Component. }); m_View.AppendColumn(column); } // setup checkbox column { CellRendererToggle renderer = new CellRendererToggle(); TreeViewColumn column = new TreeViewColumn("", renderer); column.SetCellDataFunc(renderer, (TreeViewColumn _column, CellRenderer _cell, TreeModel _model, TreeIter _iter) => { }); m_View.AppendColumn(column); } }