这是我的问题。我有一个WPF数据网格,我将.ItemsSource绑定到linq查询IEnumerable结果。这非常有效。当我运行程序时,数据正确地加载到数据网格中。我的问题是显示的数据太多了。 (IE用户不需要查看ID字段等)。我试图做的是在绑定到.ItemsSource后,我想隐藏几列。我找到了.Visibility并尝试设置它,但 columns对象是空的。绑定后我尝试了以下方法:.Items.Refresh()和.UpdateLayout()。
我的问题是在设置.ItemsSource后需要调用什么方法来刷新列?
答案 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没有被加载;这就是你获得空列对象的原因。
希望这对你有用。