c#中怎样获取DataGrid控件当前页面显示的所有数据值,前提是不进行单击选中等类型的操作的情况下

c#中怎样获取DataGrid控件当前页面显示的所有数据值,前提是不进行单击选中等类型的操作的情况下,不使用LoadingRow事件... c#中怎样获取DataGrid控件当前页面显示的所有数据值,前提是不进行单击选中等类型的操作的情况下,不使用LoadingRow事件 展开
 我来答
376710727
2016-11-08 · TA获得超过8937个赞
知道大有可为答主
回答量:2593
采纳率:100%
帮助的人:1279万
展开全部
DataGrid.ItemsSource 就是其绑定的数据源。

获取到的是object类型,需要强转换为绑定的类型 (比如List<MyData>)。
转换后就是你要的数组了,linq操作即可。
更多追问追答
追问
好像并不是这样的,假如说我有一万条数据窗口最多同时显示18条,我现在需要的就是这18条,其他的我都不需要,但是通过ItemsSource获取到的是全部数据而不仅仅是显示的十八条
追答
这个需求很奇特啊。。。 没有这么去搞的吧。。这也太随意了吧
对于程序来说,由于控件的大小, DataGrid上只显示了18条数据,其他的数据还是在的,只是没有显示罢了。
如果硬要找目前能显示的行, 需要利用滚动条去做, 获取滚动条的总长度,和滑块目前的坐标, 近似的可以算出当前显示的数据所在总数据源中的起始、结束值。
但是当数据量大且控件高度较低的时候是不准确的。 而且DataGrid允许显示半行数据, 这半行是算 还是不算?

WPF和WINFORM都是事件驱动的应用,DataGrid获取数据源都是需要点击或者全选事件来触发,这样得到的结果才准确。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式