WPF DataGrid ItemsSource绑定Linq

时间:2011-10-28 13:58:06

标签: c# wpf datagrid wpfdatagrid

这是我的问题。我有一个WPF数据网格,我将.ItemsSource绑定到linq查询IEnumerable结果。这非常有效。当我运行程序时,数据正确地加载到数据网格中。我的问题是显示的数据太多了。 (IE用户不需要查看ID字段等)。我试图做的是在绑定到.ItemsSource后,我想隐藏几列。我找到了.Visibility并尝试设置它,但 columns对象是空的。绑定后我尝试了以下方法:.Items.Refresh()和.UpdateLayout()。

我的问题是在设置.ItemsSource后需要调用什么方法来刷新列?

3 个答案:

答案 0 :(得分:2)

另一种解决方案可能是更改您的linq查询。只需选择要显示的列,如下所示:

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

答案 1 :(得分:0)

为什么不明确设置DataGrid? http://www.wpftutorial.net/DataGrid.html - 这将有助于您手动设置DataGrid,而不是让它使用AutoGenerated列。

答案 2 :(得分:0)

如果要使用DataGrid列的.Visibility,请在DataGrid中加载数据后执行此操作。在绑定ItemSource之后,DataGrid没有被加载;这就是你获得空列对象的原因。

希望这对你有用。