Bonjour à tous,
J'ai un problème avec une TextBox, une BindableApplicationBar (et un Pivot).
ma BindableApplicationBar (BAB) est placée sur ma page contenant les pivots. Les pivots contenant des usercontrols.
Dans un de ces usercontrols se trouve ma TextBox.
Le bouton sur ma BAB va envoyer mon texte (contenu de la TextBox) à un Webservice. J'ai bindé la propriété Text de ma TextBox sur mon ViewModel (celui de la page contenant le Pivot et BAB.
Mon problème est que le focus de la propriété Text de la TextBox n'est pas propagée au clic sur le bouton de la BAB. Il faut d'abord que je clique ailleurs sur l'écran pour que la propriété soit mise à jour.
Or si je met un bouton directement dans mon usercontrol (à l'intérieur de mon PivotItem), quand je saisis un texte puis appui sur ce bouton, la propriété Text est directement mise à jour.
Ordre d'inclusion :
Page (Bindée avec ViewModel) -> Pivot + BAB
Pivot -> PivotsItem -> UserControl
UserControl -> TextBox
Y'a-t'il un moyen de contourner mon problème ?
J'ai tenté de donner le focus à un autre élément avec l'évenement Click sur le bouton de ma BAB, mais l'évènement n'est déclenché qu'après ma Command, le MouseLeftButtonDown n'est pas appelé du tout.
Code XAML : 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 <phone:PhoneApplicationPage x:Class="JooSport_Mobile.View.Activity.ActivityPane" [..] xmlns:p7c="clr-namespace:Phone7.Fx.Controls;assembly=Phone7.Fx" [..] DataContext="{Binding Activity_VM, Source={StaticResource Locator}}"> <Grid x:Name="LayoutRoot"> <controls:Pivot> <controls:PivotItem Header="Wall"> <vma:Wall x:Name="Wall" /> </controls:PivotItem> </controls:Pivot> <p7c:BindableApplicationBar x:Name="AppBar"> <p7c:BindableApplicationBarIconButton x:Name="BABIB_Send" Text="{Binding Path=LocResources.Send, Source={StaticResource LocalizedStrings}}" Command="{Binding SendButton}" IconUri="/Resources/Icon/AppBarIcon/MessageSend_48x48.png" /> </p7c:BindableApplicationBar> </Grid> </phone:PhoneApplicationPage>
Code XAML : 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 <UserControl x:Class="JooSport_Mobile.View.Activity.Wall" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" FontFamily="{StaticResource PhoneFontFamilyNormal}" FontSize="{StaticResource PhoneFontSizeNormal}" Foreground="{StaticResource PhoneForegroundBrush}" d:DesignHeight="480" d:DesignWidth="480"> <Grid x:Name="LayoutRoot"> <StackPanel> <TextBox x:Name="TB_Comm" Text="{Binding Mode=TwoWay, Path=CommentTxt, BindsDirectlyToSource=True}" InputScope="Text" /> <Button Content="Envoyer" Command="{Binding SendButton}" /> </StackPanel> </Grid> </UserControl>
Un code simplifié pour illustrer le tout, car c'est sûrement pas très clair pour tout le monde ce que je viens de dire
Merci d'avance de vos réponses/propositions.
Mat
Partager