2010-11-19 19 views
4

Tout en essayant d'apprendre la source pour l'application de l'échantillon GameLibrary j'ai vu une ligne comme ceci:convention élément Caliburn

ConventionManager.AddElementConvention<Rating>(Rating.ValueProperty, "Value", "ValueChanged"); 

la source a regardé dans de Caliburn mais ne pouvait pas vraiment comprendre ce que les conventions sont élément.

Quelqu'un peut décrire brièvement s'il vous plaît?

Répondre

7

ConventionManager.AddElementConvention vous permet d'établir un ensemble de paramètres "par défaut" utilisés par le système de convention pour chaque élément de type.

  • Dans le cas mentionné ci-dessus, la première valeur de paramètre de Rating.ValueProperty indique au système conventionnel ce que la propriété par défaut est susceptible de se lier à l'élément. Donc, si nous avons une correspondance de convention sur un contrôle Rating, nous établissons la liaison avec le ValueProperty.

  • Le second paramètre représente la propriété par défaut à utiliser dans les liaisons Action. Ainsi, si vous créez une liaison d'action avec un ElementName pointant vers un contrôle Rating, mais que vous ne spécifiez pas la propriété, nous revenons à la propriété Value. Enfin, le paramètre thrid représente l'événement par défaut pour le contrôle. Ainsi, si nous attachons une action à un contrôle d'évaluation, mais ne spécifions pas l'événement pour déclencher cette action, le système reviendra à l'événement ValueChanged.

Ces conventions d'éléments permettent au développeur de fournir autant ou aussi peu d'informations, ce qui permet dans une variété de situations, le cadre pour remplir les détails manquants que approptiate.

+0

Pourriez-vous ajouter le texte de cette réponse à la page «Tout sur les conventions» dans la documentation, où vous parlez tout autour de ce sujet sans jamais dire ce que vous dites ici. (par exemple, là vous dites que "Text" est "ParameterProperty" d'un TextBox sans jamais dire si cela est spécifié par le premier ou second paramètre à AddElementConvention()) –

+0

J'ai créé un ticket pour ajouter ceci aux docs. – EisenbergEffect

+0

J'ai ajouté l'explication ci-dessus aux documents comme demandé. – EisenbergEffect