c#中怎样获取DataGrid控件当前页面显示的所有数据值,前提是不进行单击选中等类型的操作的情况下
c#中怎样获取DataGrid控件当前页面显示的所有数据值,前提是不进行单击选中等类型的操作的情况下,不使用LoadingRow事件...
c#中怎样获取DataGrid控件当前页面显示的所有数据值,前提是不进行单击选中等类型的操作的情况下,不使用LoadingRow事件
展开
1个回答
展开全部
DataGrid.ItemsSource 就是其绑定的数据源。
获取到的是object类型,需要强转换为绑定的类型 (比如List<MyData>)。
转换后就是你要的数组了,linq操作即可。
获取到的是object类型,需要强转换为绑定的类型 (比如List<MyData>)。
转换后就是你要的数组了,linq操作即可。
更多追问追答
追问
好像并不是这样的,假如说我有一万条数据窗口最多同时显示18条,我现在需要的就是这18条,其他的我都不需要,但是通过ItemsSource获取到的是全部数据而不仅仅是显示的十八条
追答
这个需求很奇特啊。。。 没有这么去搞的吧。。这也太随意了吧
对于程序来说,由于控件的大小, DataGrid上只显示了18条数据,其他的数据还是在的,只是没有显示罢了。
如果硬要找目前能显示的行, 需要利用滚动条去做, 获取滚动条的总长度,和滑块目前的坐标, 近似的可以算出当前显示的数据所在总数据源中的起始、结束值。
但是当数据量大且控件高度较低的时候是不准确的。 而且DataGrid允许显示半行数据, 这半行是算 还是不算?
WPF和WINFORM都是事件驱动的应用,DataGrid获取数据源都是需要点击或者全选事件来触发,这样得到的结果才准确。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询