17.09.2013 19:40, jaymarvels пишет:
Coming from a winform background I could do this without an issue..in gtk# I
am running into all kinds of issues.

I have something like this:

                        var dataSource = new List<Positions>();
                        dataSource.Add(new Positions() { positionName = 
"Goalkeeper",
positionMask = 1 });
                        dataSource.Add(new Positions() { positionName = 
"Sweeper", positionMask =
2 });
                        dataSource.Add(new Positions() { positionName = 
"Defender", positionMask
= 4 });
                        dataSource.Add(new Positions() { positionName = "Defensive 
Mid",
positionMask = 8 });
                        dataSource.Add(new Positions() { positionName = 
"Midfielder",
positionMask = 16 });
                        dataSource.Add(new Positions() { positionName = "Attacking 
Mid",
positionMask = 32 });
                        dataSource.Add(new Positions() { positionName = 
"Striker", positionMask =
64 });
                        //Setup data binding for drop down
this.cboPlayerPosition.datasource = dataSource;
                        this.cboPlayerPosition.DisplayMember = "positionName";
                        this.cboPlayerPosition.ValueMember = "positionMask";

This failed as GTK# doesnt have .datasource ...

How can I accomplish what I am trying..

I have googled for hours trying to see how to bind a object list to a
combobox with no luck.
You need use Gtk.ListStore.

If i understand your task, you can do it like this:

Gtk.ListStore dataSource = new ListStore (typeof (string), typeof (int));
dataSource.AppendValues( "Goalkeeper", 1);
dataSource.AppendValues ("Sweeper", 2);
dataSource.AppendValues ( "Defender", 4 );
dataSource.AppendValues("Defensive Mid", 8);
.......
//If you want display only name column, you need setup combobox
combo.Clear ();
Gtk.CellRendererText text = new Gtk.CellRendererText ();
combo.Model = dataSource;
combo.PackStart (text, false);
combo.AddAttribute (text, "text", 0);

//You can get active item value like this:
TreeIter iter;
if(combo.GetActiveIter(out iter))
    positionMask = (int) combo.Model.GetValue(iter,1);

I think if you want use "Positions" class for store data, also you can make it by using "SetCellDataFunc" . See example here
http://www.mono-project.com/GtkSharp_TreeView_Tutorial

--
Andrey Gankov
Mail:[email protected]
ICQ: 230-684-976
Jabber:[email protected]

_______________________________________________
Gtk-sharp-list maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/gtk-sharp-list

Reply via email to