我们正面临一个问题,我们需要暂停网格绘画一段时间。我们正在使用绑定到XPInstantFeedbacksource的devexpress DXGrid。我们需要每2-3秒刷新一次源,以获得更新的实时数据(一天大约40到5万条记录)。 然而,上述源的刷新方法异步地绑定网格,当它这样做时,它会导致某种闪烁到网格上。在内部,它在刷新之前捕获网格布局,并在后刷新阶段将其渲染回来。 我尝试了很多东西,比如在bigindataupdate和enddataupdate中包装刷新调用,但它似乎没有用。 但是,对我来说有一点感兴趣的事情是使用Win32 api暂停布局绘画一段时间并恢复它。
我发现了一些东西How do I suspend painting for a control and its children?
适用于Winforms,但据我所知,在WPF中,各个控件共享窗口句柄。和方法调用
SendMessage(parent.Handle,WM_SETREDRAW,false,0);
使用控制句柄与WIN32交互。此外,我观察到如果我暂停窗口底层网格的布局仍然被绘制,这对我来说很奇怪。 我只是想知道,如果我正在通过暂停网格布局来避免闪烁,如果是,请提出一些方法来实现这一点。
谢谢,
Gurpreet