简体   繁体   中英

WPF DataGrid ItemsSource Binding Linq

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?

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 });

Why not explicitly setup your DataGrid? http://www.wpftutorial.net/DataGrid.html -- This will help you be able to setup your DataGrid manually instead of having it use AutoGenerated columns.

If you want to use the .Visibility of DataGrid column, do it after loading of data in the DataGrid. DataGrid is not getting loaded just after the binding of ItemSource; that's why you are getting empty column objects.

Hope this will work for you.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM