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
SIEM & PME : Comment construire la boîte noire de votre SI ?
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et accessible, pour anticiper, détecter et réagir efficacement aux attaques.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- IA de confiance : le facteur clé pour rentabiliser les projets d’entreprise
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Hôpitaux virtuels : renforcer le système de santé français grâce au numérique
- Cybercriminalité bancaire : l’IA industrialise les attaques en 2026
Articles les + lus
Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
À la une de la chaîne Tech
- Quand les « travailleurs numériques » pallient le manque de bras dans l’industrie
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
