J'ai donc une Listbox, qui utilise un ItemTemplate pour afficher une image. Je veux être en mesure de changer la taille de l'image affichée dans le ItemTemplate. Grâce à la liaison de données, je peux changer la largeur, mais la seule façon de voir comment faire est d'ajouter une propriété (Say, ImageSize) à la classe à laquelle je suis lié et de changer chaque élément de la collection pour obtenir une nouvelle ImageSize. N'existe-t-il aucun moyen d'accéder à la propriété d'un élément dans ce Datatemplate?Existe-t-il un moyen de modifier par programme un Data/ItemTemplate dans Silverlight?
E.g.
<navigation:Page.Resources>
<DataTemplate x:Key="ListBoxItemTemplate">
<Viewbox Height="100" Width="100">
<Image Source="{Binding Image}"/>
</Viewbox>
</DataTemplate>
</navigation:Page.Resources>
<Grid>
<ListBox ItemTemplate="{StaticResource ListBoxItemTemplate}" ItemSource="{Binding Collection}"/>
</Grid>
est-il de toute façon de définir la largeur et la hauteur du négatoscope sans lier une propriété à tous les éléments de la collection?
Les liaisons ElementName ne fonctionnent que dans Silverlight 3 et supérieur. Comme il utilise silverlight 4, cela devrait fonctionner! :) – Arcturus
Donc, en utilisant cela, je pourrais avoir une Textbox cachée ou quelque chose et l'utiliser pour mettre à jour le modèle par programmation? Ou est-ce hacky et il y a une meilleure façon de le faire? –
Je pense que vous pourriez même nommer UserControl et utiliser une propriété personnalisée sur UserControl. Si vous faites cela, assurez-vous d'implémenter INotifyPropertyChanged et de déclencher l'événement PropertyChanged lors de la modification de cette propriété. – Sorskoot