Bonjour à tous,
Quelques traitements dans mon application prenne quelques secondes, voir quelques minutes.
J'ai donc voulu utiliser le toolkit BusyIndicator.
voici le code du côté xaml de ma mainWindows :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 xmlns:extToolkit="clr-namespace:Microsoft.Windows.Controls;assembly=WPFToolkit.Extended" (...) <extToolkit:BusyIndicator IsBusy="{Binding BI}" > <TabControl x:FieldModifier="public" Margin="0,29,0,23" Name="tabControl2" VerticalContentAlignment="Stretch" HorizontalContentAlignment="Stretch" ItemsSource="{Binding Tabs}" SelectedIndex="{Binding TabSelect}" Background="#00000000"> </TabControl> </extToolkit:BusyIndicator>
VOici le code de mon viewModel :
Code c# : 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 BackgroundWorker worker = new BackgroundWorker(); worker.DoWork += (o, ea) => { Application.Current.Dispatcher.BeginInvoke((Action)(() => NewTabItem("LSP", "Liste des Portefeuilles") )); }; worker.RunWorkerCompleted += (o, ea) => { _BI = false; RaisePropertyChanged("BI"); }; _BI = true; RaisePropertyChanged("BI"); worker.RunWorkerAsync();
Malheureusement le BusyIndicator ne s'affiche jamais.
Je pense que j'ai un problème d'appel asynchrone de mon busyIndicator pour Isbusy=true.
Car si j'enlève toute la partie worker, j'arrive bien à afficher mon Busyindicator
Comment forcer l'affichage du BusyIndicator de manière asynchrone svp?
(Pour info, la fonction que j'execute sur le thread a pour objectif d'ajouter un tabItem au tabControl et le content de ce tabItem est un USerControl qui dans son init fait quelques requête en base données, est-ce que j'ai mis au bon endroit mon busyIndicator?)
Merci de votre aide.
cdt
Mickeybond
Partager