08-26-2015 01:05 AM
I'm curious if there is any community interest in building a .NET datagrid wrapper for use and integration with LabVIEW?
I despise LabVIEW tables and have some usable code for integrating .net datagrids into LabVIEW with some flexible data types and I'm curious if others are interested in this as an open source project. If so, please respond with your interest as an:
1. Consumer of the tool for use in your own projects
2. Contributor to the tool to help build it for others' use
Also, I'd put it up on github likely and am curious what others would like to see in such a tool.
My initial thinking is a features set in the following priorities (again looking for contributors)
1. a datagrid class to wrap and hide the .net component similar to the report generation toolkit
2. a basic replacement of the LabVIEW table with a few enabled default behaviors such as sortable, movable columns with auto filling columns and word wrap obviously.
3. various data types (string, link, checkbox, rings, link, image) that would show as column types (possibly customer row types) for content in the table
4. Auto drawing cluster data or string based data into a grid that has the appropriate datatypes defined (I'll post some samples of this concept soon)
5. Event triggers with callbacks or user events to handle clicks, edits and selections in the grid.
6. Advanced properties and customizations with class property extensions for easy use in the wrapper LabVIEW class.
7. more potential.
Mike King
Sr. Director R&D
Advanced Measurements Inc
Solved! Go to Solution.
08-26-2015 03:48 AM
I would definitely be interested in seeing what an alternative table control could offer. I tend to use a lot of MCLs and tables (and sometimes trees) in my applications (even often replacing things like graph legends with tables) but it isn't exactly a dream to work with (such as the table flickering hack) so I would be interested in alternatives.
08-26-2015 10:02 AM
OK Great Sam, here are a few screens of some things I've started that would be a baseline for the table. I've only started with display only, no events from it yet and just some basic data type conversion for display on the grid.
The grid has column types defined and then the data can be set by either cluster array with the appropriate data types or an equivalent string 2D data table. I've thinking of making the columns detect the data type of the cluster and automatically display that content for things like booleans, rings or files. Very future though. Basics are needed first.
08-26-2015 11:33 AM
The initial code repository and example are now up on github
09-18-2015 03:24 AM
Looks cool, kudos!
Always interested to see projects getting shared on Github. Hopefully you get some contributions!
Shared it over on this thread: https://decibel.ni.com/content/message/115455#115455
09-18-2015 09:15 AM
09-18-2015 12:15 PM
What's the LabVIEW version used to generate the repo?
09-21-2015 10:21 AM
The repo is LabVIEW 2014 at the moment.
09-25-2015 04:04 PM
Hey people,
I've updated the grid with a better example, with much more data in it to optimize for speed. The grid is now done properly with databinding to a dataTable, so the dataset is created and managed first, then the datasource set and instant refresh. Should be much better working with the grid using this now. Had to loose a couple planned data types, have no idea how to bind them yet.
So, there is native support now for strings, timestamps, numberics, checkbox/booleans, and images. Check it out on github.
09-28-2015 04:07 AM
Hi Mike, Saw this thread had been updated and since you provided a convenient link I had a look at the example.
Looks great - the fact that you can sort the data so easily (and drag columns around etc.) is pretty cool and it looks very nice compared to the LabVIEW equivalents.
I did notice that it struggles a bit with scrolling / resizing - slow panel updates and high CPU usage. I wonder if maybe it would struggle with displaying real-time data?
It has got my interest though...I'm curious as to what else is possible with it (e.g. saving column positions, entering data etc.).