Ich habe eine Methode in einem DispatcherTimer, die alle 3 Sekunden die Daten meines Datagrids aktualisiert. (3 Sekunden für Testzwecke)Aktualisieren von Daten in DataGrid ist zu "Flashy"
Die Sache ist, dass jedes Mal, wenn mein Datagrid aktualisiert wird, es alle Daten löscht und dann die Daten wieder aus meiner Datenbank lädt (natürlich). Jetzt ist mein Problem, dass es diese "flashy" Effekt jedes Mal erstellt, wenn die Daten geladen werden, da alle Zeilen gelöscht und in das Datagrid neu geladen werden.
Also meine Frage ist, (nachdem Sie sich meinen Code unten angeschaut haben) gibt es eine bessere Möglichkeit, die Daten immer wieder zu laden, ohne den blinkenden Effekt in meinem Datagrid zu erzeugen?
Meine Methode, wo ich meine Daten von meinem WCF-Dienst aufrufen:
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());
}
}
Hier nenne ich die LoadTrucks()
Methode und meine DispatcherTimer erstellen:
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();
}
die Antworten Versuchen Sie [hier] (http://stackoverflow.com/a/2041839/4875631) oder [hier] (http: // Stackoverflow. com/questions/19358499/my-datagridview-blinks-when-refreshing) – FrankerZ
Beide Links sind für WinForms und nicht WPF :( – CareTaker22
Könnten Sie nicht das für WPF anpassen? Gibt es keine Möglichkeit, das Layout auf WPF zu suspendieren? – FrankerZ