J'ai créé une grille groupée avec un modèle d'élément et un modèle d'en-tête. Cela fonctionne bien, mais je voudrais alors que le premier article de ma liste ait un modèle différent (pour être plus grand). Comme l'application française "Lemonde" par exemple. Je n'ai aucune idée de la façon dont je pourrais définir le modèle pour y parvenir.
Voici mon code XAML actuel P>
public class AuctionItemDataTemplateSelector : DataTemplateSelector { protected override DataTemplate SelectTemplateCore(object item, DependencyObject container) { FrameworkElement element = container as FrameworkElement; if (element != null && item != null && item is Article) { Article auctionItem = item as Article; DataTemplate mySmallTemplate = element.FindName("SmallTemplate") as DataTemplate; switch (auctionItem.isFirstItem) { case true: return element.FindName("BigTemplate") as DataTemplate; case false: return element.FindName("SmallTemplate") as DataTemplate; } } return null; } }
3 Réponses :
Au lieu d'utiliser un seul itemTemplate pour tous les éléments de la grilleview, vous devez définir différents éléments d'élément d'élément pour le 1er élément, puis pour tous les autres. P>
Pour ce faire, vous devez avoir à distance ItemTemplate défini et utiliser l'élémentTemplateplates pour déterminer quel style à utiliser. P>
Ici, vous trouverez ici plus d'informations: http : //msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.itemTemplateselector.aspx P>
J'ai suivi la façon de créer un groupe de données personnalisé avec tous les modèles nécessaires en tant que propriétés.
<GridView x:Name="PicturesGridView" ItemTemplateSelector="{StaticResource mySelector}">
Merci. Cela fonctionne bien bien car il rend le premier élément ayant un modèle différent de celui de l'autre. Cependant ce n'était pas ce que je voulais désolé, c'est de ma faute, je n'étais pas claire. Parce que avec votre technique, la taille de l'article dans la vue de la grille a toujours la même taille. Disons que je choisis que j'ai choisi MyTemballate1 d'avoir une grille avec une largeur de 400 et mytemplate2 une grille avec une largeur de 200. Ensuite, si mon premier élément suit myTEemplate1, tout l'élément de la vue de la grille aura une taille de 400, même si l'image à l'intérieur est seulement 200. P>
Je voulais obtenir un résultat comme dans cet article: J'ai donc trouvé ce que j'avais réellement besoin de la variables ci-dessouswrapgrid et de réapprovisionner une version d'une grilleview.i suivi ce très bon article: http://social.msdn.microsoft.com/forums/en-us/winappswithcsharp/thread/966AA897-1413-46F0-BEF7 -663de36f9423 . P>
Cependant, je vais marquer votre réponse comme étant correcte car elle répond à ma question initiale: elle permet de sélectionner une taille d'élément différente dans une vue de grille de groupe. p>
Merci beaucoup pour votre temps, cela m'a aidé beaucoup p>
Vous ne devriez pas mettre des choses comme "Windows 8" dans votre titre. C'est ce que sont les étiquettes.
Oui: blog.jerrynixon.com/2012/08/ Windows-8-Beauty-Tip-with.html