Bonjour,
J'ai une textbox qui me sert à filtrer le contenu d'un Datagrid. Après y avoir entré trois ou quatre caractères (variable en fonction du temps pris pour entrer ces caractères), la requête se lance et le datagrid se met à jour. Le problème est que dès que la recherche se lance, le textbox perd son focus et il n'est plus possible d'affiner la recherche en complétant le filtre (sauf en cliquant une première fois dessus, une deuxième fois à la fin des caractères déjà entrés).
Voici le code, mon textBox s'appelle "FiltreName"
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <riaControls:DomainDataSource x:Name="ContactDS" QueryName="GetContactByGroupeUtilisateurIdQuery" LoadDelay="0:0:1.5" PageSize="8" LoadSize="24" AutoLoad="True" SubmittedChanges="ContactDS_SubmittedChanges" LoadedData="ContactDS_LoadedData" > <riaControls:DomainDataSource.DomainContext> <MonProjetLocal:J_Context/> </riaControls:DomainDataSource.DomainContext> <riaControls:DomainDataSource.FilterDescriptors> <riaControls:FilterDescriptor Operator="Contains" PropertyPath="ContactLastName" Value="{Binding ElementName=filtreName, Path=Text}" IgnoredValue=""/> </riaControls:DomainDataSource.FilterDescriptors> </riaControls:DomainDataSource>
ça fonctionne presque bien sauf que quand j'entre par exemple "DUP", il va bien me lancer la recherche et me retrouver les "Dupont", "Dupond", "Dupuis"... mais le focus va quitter mon "FiltreName".
Code : Sélectionner tout - Visualiser dans une fenêtre à part <TextBox x:Name="filtreName" Width="81" Text="" />
Hor mon utilisateur veut peut-être entrer "DUPU" pour ne retrouver que les "Dupuis". Dès que la recherche est lancée, le focus est perdu et il doit avec la souris, cliquer de nouveau sur le FiltreName puis se mettre derrière le DUP qu'il vient de taper et enfin taper le "U".
Je voudrais donc que quand le filtre se mette en marche, le focus reste bien sur filtreName et que l'utilisateur puisse décider de rajouter des caractères à volonté.
En fait, j'ai pu identifier que c'est le busyindicator qui pose problème:
car si je l'enlève, mon focus reste bien sur mon textbox, mais parcontre, l'utilisateur n'est pas informé qu'une requête est en cours d'exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part <JBase_Controls:BusyIndicator IsBusy="{Binding IsBusy, ElementName=ContactDS}" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="0" Width="1000" >
La solution idéale serait donc d'avoir le busyindicator et garder le focus (même s'il est désactivé temporairement lorsque le busyindicator fonctionne)
Partager