DataGrid Ad Hoc columns

Feb 10, 2009 at 4:10 AM
Hi all, I have a DataGrid that I use to display object data with.  Everything seems to be working fine, however the application sometimes does not need to display the full objects data just a few of the fields instead of all of them.  The problem is that I have no way of knowing ahead of time which fields until the user selects them.  Is there any way to either hide columns or create an ad-hoc object at runtime?

Thank you,
-jupiter 
Feb 10, 2009 at 5:06 AM
Hi,

Try setting Visibility="Hidden" on the columns you wish to hide.

Regards,
Colin E.
--
http://www.scottlogic.co.uk/blog/wpf/ - my WPF blog
http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx - WPF DataGrid Practical Examples
Feb 10, 2009 at 6:11 AM
Thanks Colin, heres the wiered thing though.  After I set the ItemsSource property of the DataGrid I see no columns when I step through the debugger.  In fact I put in a foreach loop to iterate through the column collection and it skips right over it.  Here's a snippet.

 

// get a DataGrid control and populate with data

 

 

DataGrid dataGrid = new DataGrid();

 

dataGrid.ItemsSource = selectedFile.CreateRunInstances();

 

 

// add the DataGrid to the TabItem

 

dataTab.Content = dataGrid;

 

foreach (DataGridColumn col in dataGrid.Columns)

 

{

col.Visibility =

Visibility.Collapsed;

 

}

 

// add the TabItem to the TabControl

this
.myTabControl.Items.Add(dataTab);

 

Feb 10, 2009 at 7:29 AM
Hi,

How about handling the Loaded event of the DataGrid, the iterating over the columns collection? The visual components of a control are not fully constructed when you first create an instance of a control. From MSDN, the Loaded event "Occurs when the element is laid out, rendered, and ready for interaction."

This might help.

Regards,
Colin E.
--
http://www.scottlogic.co.uk/blog/wpf/ - my WPF blog
http://www.codeproject.com/KB/WPF/WPFDataGridExamples.aspx - WPF DataGrid Practical Examples