Bonjour,
Voici l'idée de mon application WPF en C# :
Lorsque je clique sur un bouton (InsertSql_Btn), je lance une requete SQL et affiche les résultats dans un DataGrid (dt1). J'ajoute un ProgressBar (PB1) qui s'incremente au fur que la requete remonte des lignes.
Tout fonctionne bien hormis pour le ProgressBar qui au lieu de s'incrémenter, affiche directement le nombre de ligne trouvée.
Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 public DataTable CreateDt(IProgress<int> progress) { using (Entities dc = new Entities()) { DataTable dt = new DataTable(); var query = (from a in dc.GCARTICLE where a.ART_RUB6 == "POLYB" && a.ART_CODE.StartsWith("A3") select new { a.ART_CODE }).ToList(); DataColumn dt1 = dt.Columns.Add("ART_CODE", typeof(string)); DataRow dw; foreach (var c in query) { dw = dt.NewRow(); dw["ART_CODE"] = c.ART_CODE; dt.Rows.Add(dw); } for (int i = 0; i < dt.Rows.Count; i++) { progress.Report(i); } return dt; } } private async void InsertSql_Btn_Click(object sender, RoutedEventArgs e) { var progress = new Progress<int>(percent => PB1.Value = percent); var result = await Task.Run(() => CreateDt(progress)); dt1.ItemsSource = result.DefaultView; }
Que faut-il changer à ce code pour que le ProgressBar s'incrémente de 1 à chaque ligne crée dans le Datagrid ?
Merci de votre aide
Partager