J'utilise DataGrid pour mon application et j'utilise la minuterie pour mettre à jour la grille de données de la base de données. La minuterie se rafraîchit toutes les 5 secondes pour voir s'il y a de nouvelles données. S'il y a de nouvelles données, elles sont mises à jour dans le DataGrid. Mais il réinitialise aussi tout dans le DataGrid et je perds l'index sélectionné. Comment puis-je empêcher la mise à jour ou la modification de l'élément sélectionné alors que d'autres lignes sont mises à jour?Empêcher l'actualisation de la ligne sélectionnée dans DataGrid
public void InitTimer()
{
Timer timer1 = new Timer();
timer1.Elapsed += Timer1_Elapsed;
timer1.Interval = 5000; // in milliseconds
timer1.Start();
}
private void Timer1_Elapsed(object sender, ElapsedEventArgs e)
{
Application.Current.Dispatcher.Invoke((Action)(() =>
{
dataGrid1.ItemsSource = AddData(dataGrid1);
}));
}
Pouvez-vous fournir des informations que vous actualisez le 'dataagrid' avec votre minuteur? Utilisez-vous une ViewModel-Binding? Il semble que vous mettez à jour vos données dans votre vue (= code-behind). Nous avons besoin de plus d'informations. Merci – WoIIe
Salut Wolle, J'ai mis à jour la question avec ma fonction de minuteur que j'utilise pour mettre à jour la grille de données. – metadata
Puisque d'autres personnes peuvent faire face au même problème, je dois vous informer que ce que vous essayez d'accomplir est une très mauvaise pratique en termes de style de programmation WPF. Je vous conseille de choisir une approche [MVVM] (https://msdn.microsoft.com/fr-fr/library/ff798384.aspx) pour résoudre ce problème. – WoIIe