> Tech > Ajouter des attributs à la classe de données

Ajouter des attributs à la classe de données

Tech - Par Renaud ROSSET - Publié le 19 septembre 2011
email

Nous avons Presque terminé. La figure 1 montre l’affichage des données à ce stade. Notez que le formulaire de données a déduit le contrôle utilisateur approprié pour les types Boolean et date.

Ajouter des attributs à la classe de données

Toutefois, la clé primaire est modifiable, la propriété MoreInfo ne doit pas être visible par l’utilisateur et les postes de facture ne sont pas visibles. Un moyen de résoudre ces problèmes consiste à créer une page personnalisée, mais ce type de correctif est susceptible d’être requis par tous les types d’entités, ce qui annule la valeur des outils automatisés.

Attributs à la classe de données

Une autre approche consiste à ajouter des attributs à la classe de données. Cela fonctionne bien pour les personnalisations statiques, notamment le blocage de l’édition de clé primaire. Mais les attributs fournissent les mêmes informations statiques pour toutes les utilisations et ne sont pas profitables pour l’autorisation spécifique de l’utilisateur. La capture de l’événement AutoGeneratingField permet la personnalisation en réponse à l’environnement d’exécution, notamment l’annulation de la création de champs d’affichage. Si votre service de données est conçu pour fournir des informations du type autorisation, vous pouvez lui demander d’affiner l’affichage, dans le cas présent, de supprimer un champ :

Private Sub DataForm_AutoGeneratingField( _
ByVal sender As System.Object,
ByVal e As
DataFormAutoGeneratingFieldEventArgs)
If Not _bizService.CanReadProperty( _
e.PropertyName) Then
e.Cancel = True
Return
End If

L’interception de la génération de champs d’affichage permet d’autres personnalisations, comme les intitulés, les descriptions et les effets de style spécifiques. Vous pouvez aussi spécifier le type de contrôle à employer pour l’affichage, notamment le recours à un DataGrid pour afficher la liste des postes de facture :

If IsEnumerableNotString(e.
PropertyType) Then
Dim dg As New DataGrid()
dg.SetBinding(DataGrid.
ItemsSourceProperty, _
New Data.Binding(e.
PropertyName))
AddHandler
dg.AutoGeneratingColumn, _
AddressOf DataGrid_
AutoGeneratingColumn
e.Field.Content = dg
End If

Comme une chaîne est un élément dénombrable, la fonction IsEnumerableNotString reconnaît les propriétés IEnumerable qui ne sont pas des chaînes, afin d’isoler ce code peu élégant.

Une gestion similaire de l’événement AutoGeneratingColumn peut intercepter les colonnes DataGrid pour affiner l’affichage de la grille enfant. Le défi consiste à obtenir le service approprié pour l’enregistrement de détail, lequel est un service distinct de celui de l’enregistrement maître. Vous pouvez y parvenir avec un petit peu de réflexion, afin de récupérer le nom du type cible, suivi d’un appel à la fabrique qui a récupéré le service de l’enregistrement maître :

Dim targetTypeName = dg.ItemsSource. _
GetType.GetGenericArguments(0).Name
Dim service = _bizServiceFactory. _
GetItem(targetTypeName)

La figure 2 présente le formulaire de données après ces ajustements. Mais cela ne s’arrête pas là. Le DataForm fait partie de la prise en charge de RIA Services, et RIA Services s’appuie sur les métadon- fournies dans les attributs au niveau de la classe de données. Il est possible d’employer les attributs pour définir la validation, l’affichage, le mode lecture seule et d’autres informations :<required()><stringlength(50)><display(description:=»the br= » » customer= » »></display(description:=»the></stringlength(50)></required()>

Name:=»Name»)> _
Public Property CustomerName() As String

Un tableau étoffé d’attributs existe dans l’espace de noms System.ComponentModel. DataAnnotations.
Required, Range, StringLength et RegularExpressions prennent en charge la validation automatique. Name fournit le texte pour Label. Order définit l’ordre des champs d’affichage. Si une description est fournie, dans les attributs ou dans l’événement Auto- GeneratingField, une icône d’information apparaît. Dès que l’utilisateur passe dessus avec le pointeur de la souris, la description s’affiche.

Outre les effets de style, un certain nombre de propriétés sur le DataForm contrôlent les aspects de l’affichage, notamment l’emplacement de l’intitulé. Il est probable que la création automatique de tous les aspects de votre application ne soit pas appropriée au début, mais cela vous permet de booster votre activité de développement initiale et de mettre l’accent sur les personnalisations métier réellement profitables. Avec une stylisation appropriée, vos écrans personnalisés et automatisés apparaîtront comme un ensemble intégré procurant le meilleur des deux mondes, de sorte que vous pourrez vous concentrer sur les tâches qui requièrent réellement votre attention, tout en conservant une flexibilité maximum.

Téléchargez cette ressource

Guide de technologie 5G pour l’entreprise

Guide de technologie 5G pour l’entreprise

Pourquoi la 5G est-elle faite pour votre entreprise ? La 5G peut améliorer la vitesse, la fiabilité et la capacité de votre réseau, permettant ainsi une meilleure collaboration, une productivité accrue et une prise de décision plus rapide. Notre livre blanc " The Big Book of Enterprise 5G" vous fournit les informations stratégiques dont vous avez besoin pour prendre des décisions éclairées et préparer votre entreprise à prospérer dans l'ère de la 5G. Cradlepoint, part of Ericsson est le leader mondial des solutions de réseau sans fil 4G LTE et 5G fournies via le cloud. Connectez vos employés, lieux et objets avec la 4G LTE et la 5G pour un WAN sans fil d'entreprise.

Tech - Par Renaud ROSSET - Publié le 19 septembre 2011