WPF数据表格ItemsSource绑定Linq

3
这是我的问题。我有一个WPF数据网格,将.ItemsSource绑定到linq查询IEnumerable结果。这很好用。当我运行程序时,数据在数据网格中正确加载。我的问题是显示了太多的数据。(IE用户不需要看到ID字段等)。我想做的是在绑定到.ItemsSource之后,隐藏几列。我已经找到了.Visibility并尝试设置它,但列对象为空。在绑定后,我尝试了以下方法:.Items.Refresh()和.UpdateLayout()。
我的问题是,在我设置.ItemsSource后,需要调用哪种方法来刷新列?
3个回答

2

另一种解决方案可能是更改您的linq查询。只需选择您希望显示的列,像这样:

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

是的,我最开始也是那样做的,但如果需要 ID,我就必须根据名称进行查找... 不过这是一个好主意。 - user959729

0

1
我可以这样做,但我宁愿不显式定义列。对我来说,似乎在设置itemssource后必须有某些内容才能使列对象填充。 - user959729

0
如果您想使用DataGrid列的.Visibility属性,请在DataGrid加载数据后执行。DataGrid并不会在ItemSource绑定后立即加载,这就是为什么您会得到空的列对象。
希望这对您有用。

谢谢回复。这正是我试图做的事情。我想手动强制加载绑定ItemSource后,以便我可以直接调用列的可见性属性。但我找不到方法。 - user959729

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接