Je suis nouveau à Silverlight et XAML. En essayant d'apprendre la syntaxe et les meilleures pratiques, je continue à contourner une divergence (ou du moins à moi, il semble que certaines manuelles d'événement implémentent.
dans un Exemple de MSDN Je vois le code suivant utilisé: P>
public Window1() { InitializeComponent(); TransformGroup group = new TransformGroup(); ScaleTransform xform = new ScaleTransform(); group.Children.Add(xform); TranslateTransform tt = new TranslateTransform(); group.Children.Add(tt); image.RenderTransform = group; image.MouseWheel += image_MouseWheel; image.MouseLeftButtonDown += image_MouseLeftButtonDown; image.MouseLeftButtonUp += image_MouseLeftButtonUp; image.MouseMove += image_MouseMove; }
4 Réponses :
sauf si j'ai besoin de modifier de manière dynamique les gestionnaires d'événements pour un objet, je préfère la définir dans le XAML lui-même. P>
Si je m'abonne à l'événement dans XAML, vous désinscrivez-vous automatiquement?
Meilleure pratique: utilisez MVVM et substitut Autre que cela, il n'y a pas de "meilleure pratique" pour définir les gestionnaires d'événements de manière déclarée dans XAML ou via le code dans les constructeurs. C'est à vous. P>
Je penserais cependant que la plupart des gens s'attendent à voir les déclarations du XAML, en voyant comme c'est là que vous concevez l'interface utilisateur. P>
Cela rend la très grande hypothèse que MVVM est toujours "la meilleure pratique". Je ne suis pas sûr que ce soit toujours vrai.
Regardez, si vous voulez mourir dans cette bataille, plus de pouvoir pour vous. Quant à moi, j'aimerais être d'abord à accueillir nos nouveaux Overlords MVVM. Sérieusement, Tho, j'aimerais voir le cas (autre que l'application la plus rudimentaire) où MVVM ne serait pas un meilleur choix.
Dans la première approche, il existe deux "sites de code" p>
dans le second il y a 3 "sites de code" p>
Personnellement, je préfère la première approche. Si je supprime un élément, je n'ai besoin que de trouver les gestionnaires d'événements qui doivent être supprimés, je n'ai pas encore besoin de modifier également le constructeur de classe. P>
Bien sûr, il s'agit de la règle de base, il y aura de nombreuses exceptions près. P>
Pour ce que vous valez, si vous essayez d'attribuer XAML à un modèle via une chaîne, les gestionnaires d'événements ne fonctionneront pas ... Voir Post: P>
ni! Utilisez des commandes! ;) J'écrirais un échantillon approprié comme réponse, mais je suis un peu rouillé moi-même