Le produit de mon entreprise est, à la base, un cadre pour le développement d'interfaces utilisateur pilotées par métadonnées. Je ne sais pas comment le décrire de façon moins succincte, et j'espère que je n'en aurai pas besoin pour cette question, mais nous verrons. J'ai essayé de mettre au point sur WPF, et j'ai construit des prototypes d'interface utilisateur ici et là, et récemment j'ai décidé de voir si je pouvais utiliser Expression Blend pour aider à la conception de ces interfaces utilisateur. Et je suis assez mystifié à ce stade.Dois-je utiliser Expression Blend pour concevoir des interfaces utilisateur vraiment dynamiques?
Il me semble que Expresssion Blend est conçu dans l'attente que vous connaissiez déjà tous les objets qui seront présents dans l'interface utilisateur au moment du design. Mais notre programme génère ces objets dynamiquement au moment de l'exécution. Par exemple, une ligne de données peut être présentée dans un StackPanel horizontal contenant alternativement TextBlocks (pour les légendes) et TextBoxes (pour les champs de données). Le nombre de ces objets dépend des métadonnées sur le nombre de colonnes dans la ligne de données. Je peux, assez facilement, écrire du code qui parcourt un enregistrement de métadonnées et remplir dynamiquement un StackPanel, en configurant la liaison de tous les contrôles aux propriétés des données ou des métadonnées. (La largeur d'un TextBox peut être liée à des métadonnées, tandis que son texte est lié à des données.)
Mais je ne peux même pas commencer à comprendre comment faire quelque chose comme ça dans Expression Blend. Je peux créer manuellement tous ces contrôles, de sorte que j'ai un ensemble de contrôles que je peux appliquer des styles et travailler sur la conception visuelle de l'application, mais c'est vraiment une douleur de le faire.
Je peux écrire du code qui traverse mon modèle de données et émet du code XAML pour tous ces contrôles, je suppose, puis le copier et le coller. Mais je vais me sentir vraiment stupide s'il y a un moyen de faire ce genre de chose dans Expression Blend et que je suis retombé et puni parce que je suis trop faible pour trouver la bonne façon d'y penser.
Est-ce suffisamment d'informations pour que quelqu'un essaie de formuler une réponse?