10
votes

Changer le contenu du bouton et le texte en fonction du clic précédent

Je veux changer le contenu du bouton en fonction du contenu précédent, cliquez sur. Par exemple, si son ajoutez , il doit ensuite passer à Enregistrer , et s'il est Enregistrer alors il doit ensuite passer à Ajouter < / code>.

Je sais comment changer le contenu d'un bouton. Mais comment peut-on lire le contenu pour changer de changement?


0 commentaires

5 Réponses :


4
votes

Un design alternatif pourrait être si on crée 2 boutons tels que addbutton et sauvegardebutton , puis on pourrait le montrer respectivement (en utilisant visibilité propriété).

pourquoi?

Parce que c'est un matière de séparation des préoccupations . Par exemple, dans le gestionnaire de clic, vous n'avez pas besoin de vérifier le mode que vous trouverez, car vous aurez des gestionnaires séparés. Vous voudrez également que les boutons aient différentes icônes, différentes info-butiers, etc.


0 commentaires

9
votes

Stockez la valeur de la dernière fois sur la propriété Tag de ce bouton et recherchez sa valeur en cliquant sur CLICK.

Tag Description

Obtient ou définit une valeur d'objet arbitraire pouvant être utilisée pour stocker des informations personnalisées sur cet élément.

lien MSDN

ou xxx


1 commentaires

Ce n'est pas la façon dont vous montrez cela dans WPF. Peut-être dans Winforms.



15
votes

Si vous utilisez MVVM, liez le contenu à une valeur et liez la commande à fonctionner. XXX

Bien sûr, vous avez ensuite une chaîne Buttontext et BoutonClickCommand comme propriétés dans votre viewModel. < / p> xxx

alors vous pouvez avoir la ButtonClickCommand changer les propriétés et la liaison prend soin de tout.


3 commentaires

Comment obtenez-vous notifyPropertyChanged () pour être accessible? Que devez-vous mettre en œuvre?


Lorsque j'ai répondu cela, j'utilisais probablement une vue de la vue avec notifyPropertychangned déjà implémentée. Voir l'étape 2 de cet article: rhyous.com/2010/12/29/...


Je vous recommande de montrer que dans votre réponse, par exemple quels espaces de noms que vous utilisez (vraiment utile pour afficher à l'aide de déclarations) et de ce que vous allez.



3
votes

Vous pouvez également utiliser un ToggleButton avec EventTriggers pour exécuter les différentes méthodes pour les états vérifiés et non contrôlés.

<ei:ChangePropertyAction PropertyName="ButtonText" Value="Save"/>


1 commentaires

Ils sont des alias d'espace de noms mélangés dans le XAML pour Microsoft.Expression.interaction (EI) et System.Windows.interactivity



7
votes

Je suis d'accord avec Surfens Réponse que la question ici n'est pas un exemple parfait pour un togglebutton code> car "Enregistrer" et "Ajouter" une opération vraiment différente qui devrait chacun avoir la propre "ICOMMAND". Le bouton respectif.

Mais voici un style qui changera le contenu en fonction de la valeur code> de p> p>

Le contenu sera "ValueForuntogledState" strong> Si le bouton n'est pas coché et de passer à "ValuePorDstateState" Strort> Lorsque vérifié. P>

<ToggleButton>
    <ToggleButton.Style>
        <Style TargetType="{x:Type ToggleButton}">
            <Setter Property="Content" Value="ValueForUnToggledState" />
            <Style.Triggers>
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Content" Value="ValueForToggledState" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ToggleButton.Style>
</ToggleButton>


0 commentaires