Advertisement
Help Keep Boards Alive. Support us by going ad free today. See here: https://subscriptions.boards.ie/.
If we do not hit our goal we will be forced to close the site.

Current status: https://keepboardsalive.com/

Annual subs are best for most impact. If you are still undecided on going Ad Free - you can also donate using the Paypal Donate option. All contribution helps. Thank you.
https://www.boards.ie/group/1878-subscribers-forum

Private Group for paid up members of Boards.ie. Join the club.

C#, DataSets & binding to DataGridViews

  • 25-04-2007 02:35PM
    #1
    Registered Users, Registered Users 2, Paid Member Posts: 14,174 ✭✭✭✭


    Hey Guys,

    I've been working on and off on the Boards.ie Archive reader and have reached a bit of a stumbling block.

    I have a dataset which is populated from a user's pm file (in xml format), and creates two tables in a master/child relationship ('Folder', 'privatemessage'). I have a schema file which creates the relation between the two tables based on the 'folder' row index vs. an added folder index id field in the 'privatemessage' table.

    The folder table contents are displayed by way of a tree-view control, and this is used to select subsets of the dataset to display in a datagridview control.

    I assign the datagridview.datasource the filtered 'privatemessage' rows and running a debug session verifies this.

    My problem is in binding the datagridview columns 'DataPropertyname' values to the 'privatemessage' table column names. I essentially end up with a blank datagridview (with the correct row count, but no content in the cells).

    if I don't filter the dataset and simply just assign the 'privatemessage' table contents to the datagridview.datasource, everything works (ableit not filtered).

    Has anyone experienced issues like this before?

    The offending method is below (well, part of it)
    private void PopulateDataGridView()
    {
    	DataRelation rel;
            int relIndex = -1;
    
    	if (dataSetArchive.Relations.Contains(Properties.Resources.Dataset_Relation))
            {
            	relIndex = dataSetArchive.Tables[Properties.Resources.XML_folder_node].ChildRelations.IndexOf(Properties.Resources.Dataset_Relation);
                    if (relIndex > -1)
                    {
                        rel = dataSetArchive.Relations[relIndex];
                        m_Binding.DataSource = dataSetArchive.Tables[Properties.Resources.XML_folder_node].Rows[m_SelectedIndex].GetChildRows(rel);
                    }
    	}
    
            DataGridViewFolder.DataSource = m_Binding; // m_Binding is a private member 'BindingSource' object
    
            DataGridViewFolder.Columns["clmTitle"].DataPropertyName = "title";
            DataGridViewFolder.Columns["clmDateStamp"].DataPropertyName = "datestamp";                        
            DataGridViewFolder.Columns["clmFromUser"].DataPropertyName = fromuser;
            DataGridViewFolder.Columns["clmToUser"].DataPropertyName = "touser";
    }
    


Advertisement