c# - Refresing data in DataGrid is too "Flashy" -
i have method in dispatchertimer refreshes datagrid's data every 3 seconds. (3 seconds testing purposes)
the thing every time datagrid gets refreshed, clears data , loads data again database(obviously). issue creates "flashy" effect each time data loads, because of rows being cleared , re-loaded datagrid.
so question is, (after have taken @ code below) there better way of loading data again , again without creating flashing effect in datagrid?
my method call data wcf service:
public async task loadtrucks() { using (truckserviceclient service = new truckserviceclient()) { list<clientitems> truckitems = new list<clientitems>(); if (dgviewprojects.items.count <= 0) { foreach (var item in await service.gettrucksasync()) { truckitems.add(new clientitems { truckquoteid = item.quoteid, truckchassismanufacturer = item.chassismanufacturer, truckchassismodel = item.chassismodel, truckstatus = item.status, truckjobnumber = item.jobnumbers, truckaddedby = item.addedby, truckclient = item.clientname }); } } dgviewprojects.itemssource = (truckitems.toarray()); } }
here call loadtrucks()
method , create dispatchertimer:
private async void dgviewprojects_loaded(object sender, routedeventargs e) { await loadtrucks(); var timer = new dispatchertimer(); timer.interval = timespan.fromseconds(3); timer.tick += new eventhandler(async (object o, eventargs t) => { dgviewprojects.itemssource = null; await loadtrucks(); }); timer.start(); }
check if item given key exists , update properties instead of switching out items.
(this idea in terms of performance, current logic requires complete recreation of data grid contents.)
Comments
Post a Comment