none
gérer l'evennement Click sur un textbox dans un usercontrol WPF RRS feed

  • Question

  • Bonjour,

    Je débute en WPF donc je suis pas encore très sûr de ce que je fais...mais merci d'avance pour votre aide!

    Je cherche à faire un usercontrol qui contient un textbox. Je voudrais pouvoir gérer le click sur le texbox pour pouvoir par exemple faire apparaître une popup. J'ai donc ajouter une property ClickCommand (qui serait un onclick) car elle n'existe pas sur le textbox et pouvoir ensuite binder l'évennement, j'ai donc utilisé les DependencyProperty. Mais quand je click sur le textbox, il n'y a pas l'appel de la command binder. Qu'Est-ce qui est faux ?

    J'ai mis le code relatif au userControl de la partie textBox ci-dessous:

    Dans la partie xaml voici ce que j'ai mis pour le champs du textbox

    <TextBox  x:Name="Test" Cursor="{Binding FieldCursor}">               
    <i:Interaction.Triggers>
      <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
        <prism:InvokeCommandAction Command="{Binding ClickCommand}" />
       </i:EventTrigger>    
    </i:Interaction.Triggers>
    </TextBox>  
    

    La partie code pour gérer le binding avec les DependencyProperty

            public static readonly DependencyProperty ClickCommandProperty = DependencyProperty.Register("ClickCommand",
                typeof(DelegateCommand<object>),
                typeof(VariableControl),
                new FrameworkPropertyMetadata((DelegateCommand<object>)null),
                new ValidateValueCallback(IsValidClickCommand));
    
            public DelegateCommand<object> ClickCommand
            {
                get { return (DelegateCommand<object>)this.GetValue(ClickCommandProperty); }
                set { this.SetValue(ClickCommandProperty, value); }
            }
    
            public static bool IsValidClickCommand(object value)
            {
                DelegateCommand<object> v = (DelegateCommand<object>)value;
                return true;
            }
    

    samedi 28 mars 2015 20:08