1 pièce(s) jointe(s)
Créer un ProgressBar dynamique en WPF
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:
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;
} |
Pièce jointe 584591
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