C# – WPF DataGrid ItemsSource Binding Linq

cdatagridwpfwpfdatagrid

Here is my problem. I have a WPF datagrid and I am binding the .ItemsSource to a linq query IEnumerable result. This works great. When I run the program the data is loaded correctly in the datagrid. My problem is too much data is displayed. (IE users don't need to see ID fields, etc). What I am attempting to do is after I bind to the .ItemsSource, I want to hide a few columns. I have found the .Visibility and attempting to set it, but the columns object is empty. After the binding I have tried the following methods: .Items.Refresh() and .UpdateLayout().

My question is what method do I need to call to refresh the columns after I set the .ItemsSource?

Best Answer

A different solution could be changing your linq query. Simply select the columns you wish to display, like so:

dataGrid.ItemsSource = myquery.Select(x => new { Name = x.Name, Age = x.Age });