Bonjour à tous :)
J'aimerais pouvoir incorporer du code C# dans ma page XAML.
En ASP.net 2.0, je faisais cela, mais ça ne fonctionne plus :
J'ai cherché sur le net, sans succès. Merci à vous :)Code:<asp:TextBox Id="<%# GetMyId() %>" />
Version imprimable
Bonjour à tous :)
J'aimerais pouvoir incorporer du code C# dans ma page XAML.
En ASP.net 2.0, je faisais cela, mais ça ne fonctionne plus :
J'ai cherché sur le net, sans succès. Merci à vous :)Code:<asp:TextBox Id="<%# GetMyId() %>" />
Le contexte, c'est que j'ai une série de Button dont les ID sont les value d'un Dictionary<int, string>.
Et la key du Dictionary est issue d'une enum, si bien que je voulais avoir ce code au final :
Code:
1
2
3
4 <Button x:Name="<%# MyDico[MyEnum.Item1] %>" /> <Button x:Name="<%# MyDico[MyEnum.Item2] %>" /> <Button x:Name="<%# MyDico[MyEnum.Item3] %>" /> <Button x:Name="<%# MyDico[MyEnum.Item4] %>" />
Maintenant, ça me fait penser à créer mes Button directement dans le code behind. C'est ce que tu voulais dire ?Citation:
De prime abord je te dirais d'utiliser du binding.
Merci d'avance à toi :)
Bonjour
Pour ta première question, le but de Xaml est de séparer le plus possible le code du design de l'interface. Alors forcement, le type de mélange à l'ASP n'est pas possible.
Non, le binding permet de lier un composant visuel à une structure de donnée qui peut se trouver dans le code-behind (et pas seulement là du reste).
C'est très puissant, mais cela ne se maitrise pas en 10min.
Quand à faire du Binding sur le nom, je ne suis pas complétement certain que ce soit possible , car même si c'est un attribut comme un autre d'un point de vue XML, à terme, cela devient un identifiant C# (ou VB) ... mais après tout ... qui sait ...
C'est pas forcement le plus élégant, mais créer dynamiquement tes boutons en code-behind est très possible et assez facile.
Pour moi ça relève plutôt d'un problème de conception. Si tu nous en disais un peu plus sur ce que tu veux faire ?
Tes boutons sont statics ou dynamiques ?
Je verrais bien une solution avec un ItemsControl personnellement.