Menu

itemscontrol Posts

SurfaceItemsControl comment ça marche ?

Il arrive souvent lors d’un développement Microsoft Surface, de devoir créer des contrôles personnalisés pour affiner l’expérience NUI (Natural User Interface) de notre application. La plupart du temps on va créer un SurfaceUserControl ou un CustomControl, mais d’expérience il arrive souvent de devoir créer un contrôle de contenu qui fonctionne à la manière d’une ListBox, ComboBoxou ScatterView. Je vais donc expliquer comment créer ce genre de contrôle en héritant d’un SurfaceItemsControl (ItemsControl en WPF, la démarche est identique).

Concept de base :

Un SurfaceItemsControl n’est qu’un container qui permet d’afficher et de gérer des éléments de diverses nature et de les afficher et les traiter d’une façon particulière. Comme pour tout container Surface (ou WPF), la propriété ItemsSource permet, par Binding notamment, de lui adresser la liste des éléments à traiter. Au moment de traiter la liste de ses éléments, l’ItemsControl va encapsuler chaque élément de la liste (chaque élément de l’arbre logique) dans un container de type ContentControl afin de les traiter de façon unifiée dans son arbre visuel, cependant il restera accessible en l’état dans l’arbre logique. Là ou ça deviens intéréssant, c’est que l’on peut redéfinir ce container et lui donner des comportements que nous jugeons utiles.

Voici les différentes étapes pour implémenter correctement ce type de contrôle.

Read More