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