J'ai un fichier .xaml et un fichier .cs qui partagent la valeur avec Binding.Problème de liaison WPF avec la mise à jour des valeurs
Pour simplifier, j'ai 1 bouton et 1 zone de texte. Je veux que le bouton soit désactivé lorsque le texte de la zone de texte n'a pas de caractère.
Voici les deux codes du XAML pour la liaison:
<TextBox Name="txtSend" Text="{Binding Path=CurrentText,UpdateSourceTrigger=PropertyChanged}"></TextBox>
<Button IsEnabled="{Binding Path=IsTextValid}" Name="btnSend">Send</Button>
Les deux propriétés dans le fichier .cs ressemblent à ce que:
public string CurrentText
{
get
{
return this.currentText;
}
set
{
this.currentText = value;
this.PropertyChange("CurrentText");
this.PropertyChange("IsTextValid");
}
}
public bool IsTextValid
{
get
{
return this.CurrentText.Length > 0;
}
}
Le this.PropertyChanged
est tout simplement une méthode qui appelle PropertyChanged
à partir de INotifyPropertyChanged.
Le problème est que je dois appeler le this.PropertyChange("IsTextValid");
dans le Setter du CurrentText pour pouvoir changer l'état du bouton.
Question 1) Est-ce la bonne façon de le faire ... si les règles deviennent plus complexes, il se peut que je doive appeler beaucoup de PropertyChanged ...?
Question 2) Mon bouton est activé lorsque le formulaire est chargé. Comment puis-je faire vérifier la méthode depuis le début?
+1 et réponse acceptée :) +25 reps pour vous mon ami. Je vous remercie. –