I have this sample from a recent talk at Basta! conference in Germany, which shows (among other things) how to bind a cross table to a DataGridView (the standard .NET 2 data grid). A cross table is basically the result of transposing some data and using one of the fields for a second dimension.
The sample I have works on two tables of data. It doesn’t actually use a database and the reference that points from the list of votes to that of features is implemented as an object reference, but the relationship is like this:
Now, let’s assume there’s this data in the two tables/lists:
Features
ID | Name |
---|---|
1 | Synthesize out-of-the-box supply-chains |
2 | Syndicate vertical mindshare |
Votes
ID | Feature_ID | Year | Priority |
---|---|---|---|
1 | 1 | 2004 | 30 |
2 | 1 | 2005 | 40 |
3 | 1 | 2006 | 70 |
4 | 2 | 2004 | 70 |
5 | 2 | 2005 | 60 |
6 | 2 | 2006 | 30 |
In a cross table the same data could look like this:
Feature/Year | 2004 | 2005 | 2006 |
---|---|---|---|
Synthesize out-of-the-box supply-chains | 30 | 40 | 70 |
Syndicate vertical mindshare | 70 | 60 | 30 |
This is exactly the kind of transformation demonstrated in my sample. Now, there are a number of other things in that program, so don’t be confused. I suggest you focus on the workings of the VoteValuePropertyDescriptor
class.
Here’s the download: FeatureVoting.zip