Xamarin.Les formulaires.Commutateur envoie Basculé cas lorsque la valeur est mise à jour
Donc je suis encore à ses débuts avec Xamarin.Forms
. C'est très bien, si j'ai mis de côté un peu embêtants bugs que j'ai rencontrés. Voici le nouveau mec. Peut-être que l'un de vous pourrait me dire si je fais quelque chose de mal.
En gros, j'ai un Xamarin.Forms.Switch
sur mon interface, et je suis à l'écoute pour les changements de son état avec la Toggled
événement. Le doc a dit à propos de cet événement: "l'Événement est déclenché lorsque ce Commutateur est activé par l'utilisateur."
Malheureusement, lorsque je mets à jour la valeur de l'interrupteur de la programmation, l'événement se déclenche.
var mySwitch = new Switch ();
mySwitch.Toggled += (object sender, ToggledEventArgs e) => {
Console.WriteLine ("Switch.Toggled event sent");
};
mySwitch.IsToggled = true;
Toute façon à empêcher le déclenchement de l'événement /de savoir que ce n'est pas l'utilisateur qui l'a déclenchée?
Vous pouvez également définir la valeur true avant d'ajouter l'événement 🙂 Ou comme @RobertN dit d'enregistrer l'ancien état si vous en avez besoin, ou pour faire de la liaison de données peut être plus facile.
Commutateur de contrôle est une b****. Le déclenchement de l'événement est bonne parce qu'elle est activée. Il ne devrait pas le faire sur le premier databind (à mon avis). La façon dont j'ai travaillé autour d'elle est de faire la liaison de données et l'attacher à l'événement en C#. J'ai d'abord mis IsToggled sur l'interrupteur, puis setBinding sur le IsToggledProperty et après que j'attache de l'événement. Peut-être que cela aide certains d'autres personnes ici, en quête de réponses.
Avez-vous trouvé la solution? J'ai aussi ne peux pas comprendre ce comment databind lors du premier chargement en particulier?
Je n'ai pas travaillé avec Xamarin.Les formulaires de nouveau, donc non, pas de solution trouvée. Je suppose que je devrais annuler l'inscription de l'Basculé cas avant la mise à jour de programme.
OriginalL'auteur aspyct | 2015-10-06
Vous devez vous connecter pour publier un commentaire.
Le problème que vous rencontrez est correct: à chaque fois que la
IsToggled
des modifications de la propriété, le commutateur de feu de laToggled
événement.Je ne suis pas sûr si le Xamarin.Les formes de la documentation a été mis à jour récemment, mais comme d'aujourd'hui, il dit ceci à propos de l'
Toggled
événement:Exemple De Code
Voici un exemple de code qui empêche la
Toggled
événement d'être traités lors de laToggled
événement n'est pas déclenché par l'utilisateurHaha, oui, c'est une douleur. J'espère que cela a aidé à répondre à votre question! Laissez-moi savoir si je peux ajouter quelque chose de plus pour vous aider!
Salut Aspyct! Si vous n'avez pas de questions, nous allons marquer cette question Répondu à aider quelqu'un dans le futur, quand ils ont une question similaire.
Ah bien, juste assez, je suppose.
OriginalL'auteur Brandon Minnick
Basculé événement chaque moment de l'appel, lorsque vous modifiez manuellement la bascule de cette époque aussi Basculé événement se déclenche.
La solution est simplement de définir
avant de changer manuellement la bascule de valeur, et d'écrire
après le changement manuel de bascule,
Espoir, cela vous aidera à
OriginalL'auteur MayankD