habe ich einen gruppierten Gridview mit einer Elementvorlage und Header-Template. Es funktioniert gut, aber dann würde ich den ersten Artikel auf meiner Liste wie eine andere Vorlage haben (größer sein). Wie zum Beispiel die französische Anwendung "LeMonde". Ich habe keine Ahnung, wie ich die Vorlage dafür definieren könnte.Verschiedene Elementgröße in einer gruppierten Grid
Hier ist meine aktuellen XAML-Code
<Page.Resources>
<CollectionViewSource x:Name="cvs1" IsSourceGrouped="True" />
</Page.Resources>
<Grid Background="White">
<GridView x:Name="PicturesGridView" SelectionMode="None"
ItemsSource="{Binding Source={StaticResource cvs1}}"IsItemClickEnabled="True" ItemClick="ItemView_ItemClick">
<GridView.ItemTemplate>
<DataTemplate>
<StackPanel x:Name="RectanglesStackPanel" Margin="8" Orientation="Vertical" Width="242">
<Image Source="{Binding imageUrl}" Height="180" Width="225" Stretch="UniformToFill" />
<Border Background="Gray" Opacity="1" Width="225" Height="115">
<TextBlock Text="{Binding title}"
Foreground="White" TextWrapping="Wrap" Width="215" FontSize="18" />
</Border>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
<GridView.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<Button Click="Button_Click_1" Content="{Binding Key}" Foreground="Black" Background="White" FontSize="30" Margin="0,0,0,-10" ></Button>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.Panel>
<ItemsPanelTemplate>
<VariableSizedWrapGrid Orientation="Vertical" />
</ItemsPanelTemplate>
</GroupStyle.Panel>
</GroupStyle>
</GridView.GroupStyle>
</GridView>
</Grid>
binde ich nur meine Liste der Artikel in C# wie folgt aus:
this.cvs1.Source = ListOfArticle;
Vielen Dank im Voraus :)
Thank du Iwan. Es hilft mir sehr. Doch der Code in dem gegebenen Beispiel scheint nicht auf dem neuesten Stand für Windows 8. Haben Sie Ideen, wie wir eine Vorlage definiert in den Ressourcen einer Seite zugreifen können. Die Methode FindRessources existiert nicht mehr. Ich habe versucht, mit diesem Code statt, aber es war nicht erfolgreich:
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;
}
}
'
Sie sollten nicht Dinge setzen wie „Windows 8“ im Titel. Dafür sind Tags da. – mydogisbox
Ja: http://blog.jerrynixon.com/2012/08/windows-8-beauty-tip-using.html –