我正在使用C#/ XAML開發Windows應用商店應用程序。我主要在iOS和一定程度上的Android應用程序開發方面有經驗,但對C#/ XAML世界還不舒服。Windows StoreApp XAML:基於數據類型更改GridView中的ItemTemplate
這是我在基於GridView的頁面中的問題(基於很好的模板VS2012生成)。
我有一個gridview和它的集合綁定到從網絡檢索的數據,它工作正常。 但我想根據數據更改網格項目。 例如:我有我想使用不同的網格視圖項顯示的文件和文件夾。
我的問題:如何根據數據爲ItemTemplate使用不同的DataTemplate?例如,對於「文件夾」,我將只有一個垂直居中的文本塊,對於文件,我將擁有兩個文本塊並且視覺上不同。
我走的是正確的道路還是我應該做的完全不同?
的XAML部分
<GridView
x:Name="itemGridView"
AutomationProperties.AutomationId="ItemGridView"
AutomationProperties.Name="Grouped Items"
Grid.RowSpan="3"
Padding="116,137,40,46"
ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
ItemTemplate="{StaticResource FileEntriesTemplate}"
ItemClick="ItemView_ItemClick"
IsItemClickEnabled="True"
SelectionMode="None"
IsSwipeEnabled="false">
模板
<DataTemplate x:Key="FileEntriesTemplate">
<Grid HorizontalAlignment="Left" Width="400" Height="80" Background="Beige">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding Image}" Stretch="Uniform" Grid.Column="0" Margin="10,0,0,0" AutomationProperties.Name="{Binding Title}"/>
<StackPanel Orientation="Vertical" Grid.Column="1" Background="Transparent">
<TextBlock Text="{Binding Title}" Foreground="Black" Style="{StaticResource LargeTitleTextStyle}" Margin="20,20,10,0"/>
<TextBlock Text="{Binding Subtitle}" Foreground="gray" Style="{StaticResource CaptionTextStyle}" TextWrapping="NoWrap" Margin="20,10,0,30"/>
</StackPanel>
</Grid>
感謝您的代碼!我使用了您發佈的關鍵字來獲取http://blogs.msdn.com/b/bryanbolling/archive/2012/12/08/how-to-control-the-datatemplateselector-in-windows-store-apps的.aspx – rydgaze