On 11/19/05, Daniel Morgan <[EMAIL PROTECTED]> wrote: > I really do wish someone would create a real-world enterprise-class DataGrid > for gtk# with Data Binding and many other fancy features. > > And take this DataGrid and make it part of Gtk#. Maybe have another gtk# > assembly for these extra widgets.
Yes, I was thinking also that it would be nice to have some separate independent library from MD, sqlsharpgtk, etc. that will include all higher level widgets (something like graphical user interface building blocks library,should think about right name later), probably later someone will include it in Gtk# if it will be interesting or to have it as an addition to Gtk#. > Anyways, I have something I have worked on for awhile, maybe others can > improve upon it and give back. If someone is interested, we could put it > into subversion somewhere with other gtk# widgets. Chris and I have > discussed this in the past, but there is only so much time. Thanks for the sources, so I will use them to start and then will contribute back when something will improve. I plan to spend a bit of time working on that DataGrid improvements, especially data binding. I'm trying to data bind it to a collection of objects right now but it also should work with the ADO.NET DataTable. Please put some other widgets or send it by mail. > Here are the source files I included: > DataGrid.cs - creates a DataGrid for Gtk# with data binding support. > TestDataGrid.cs - tests the gtk# data grid > > Basically, you can take a pre-loaded DataTable, and then "data bind" it to > the DataGrid. It may not be true data binding like SWF or webforms, but its > an attempt. > > A change to the data in the DataGrid w! ill update the data in the > DataTable. > If you add a row or delete a row in the DataGrid, it will be reflected in > the DataTable. If you modify a cell in the DataGrid, the row and column in > the DataTable will be updated. With the data table it should not be much problems but with object collections it could be a bit different, however if all information could be filled from the grid - it should be possible to implement it using ObjectViews. I will try to look at it later. > In the test, there are four menu items: > 1. Add Row - adds a row > 2. Dump Table - dumps to the console what's in the DataTable > 3. Editable - sets the DataGrid editable or not > 4. Delete Selected Row - deletes the highlighted row > > One thing I would love to see added is an Input Mask and Format properties > added to each column. Let's say you would like to format dates as a short > date, you would put "Short Date" in the format property for any locale. Or > you could set it to "MM/DD/YYYY" for US locale.. A numeric column you > could have it format as "###,###,###.##" or just simply say "Currency" for > any locale. > An input mask could limit certain characters, such as, alpha only, nu! meric > only, alphanumeric. Canadian postal code i believe is alpha, numeric, > alpha, space, numeric, alpha, numeric. So your input mask would be: "ANA > NAN". It could be done with something like standard formatters, have not a lot of experience with it but should be no problems to add it for columns metainfo classes and to render in a proper way in grid. --Gena > Anyways, please let me know if this is what you wanted. > > > Christian Hergert <[EMAIL PROTECTED]> wrote: > The original version of the datagrid i put in monodevelop was taken > from sqlsharpgtk. Daniel has since done some additions to the > monodevelop version to support basic editing and deletion. It also had > support for somewhat of a managed tree model. To be honest, im not > sure if ive merged that support yet. Both versions are a hack > regardless. > > Your example below will not work. First, you cant add an object to a > gtk container that doesnt inherit from Gtk.Widget. Secondly, even if > it did work, you would have just doubled your requirements on every > platform to both gtk and swf. > > -- Christian > _______________________________________________ Gtk-sharp-list maillist - [email protected] http://lists.ximian.com/mailman/listinfo/gtk-sharp-list
