在Windows 8应用程序中更改项目方向

时间:2013-06-06 11:18:52

标签: windows listview gridview

我正在尝试创建像应用程序一样的Windows 8日历。我采用了基本的网格布局模板,并对示例数据生成进行了一些更改,以便生成月份和表示每月日常工作的项目。我的问题是日期垂直显示而不是水平显示。试图理解GridView和ListView,但没有运气。

例如:

1 5 8 ..
2 6
3 7
4 8

代替显示:

1 2 3 4 5
6 7 8 ......

1 个答案:

答案 0 :(得分:0)

 <CollectionViewSource
        x:Name="groupedItemsViewSource"

        IsSourceGrouped="true"
        ItemsPath="SubjectListOfCategory"
         d:Source="{Binding Categories, Source={d:DesignInstance Type=data:SelectSubjectViewModel, IsDesignTimeCreatable=True}}" />

首先将collectionViewSource设置为xaml中的数据源,如上所述。和你的网格视图

        x:Name="itemGridView"       
        ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}"
       SelectionMode="Multiple"                
        SelectionChanged="itemGridView_SelectionChanged"  >         

        <GridView.ItemTemplate >
            <DataTemplate >
                <Border BorderThickness="1" BorderBrush="#7b579b"  >
                    <Grid Name="tile" Background="#FFFFFF" Height="150" Width="150"   >
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <TextBlock x:Name="hello2" Text="{Binding SubjectName}" Foreground="White" FontSize="15" Grid.Row="0" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="8"   FontWeight="ExtraLight" />                           
                    </Grid>
                </Border>
            </DataTemplate>
        </GridView.ItemTemplate>

        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal" Margin="98,0,0,0"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.GroupStyle>
            <GroupStyle>
                <GroupStyle.HeaderTemplate>
                    <DataTemplate>
                        <Grid Margin="0,0,0,6"  >
                            <Button
                                AutomationProperties.Name="Group Title"
                                Style="{StaticResource TextPrimaryButtonStyle}">
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding CategoryName}" Margin="2" FontSize="30" Foreground="White" FontWeight="Light" />

                            </Button>
                        </Grid>
                    </DataTemplate>
                </GroupStyle.HeaderTemplate>
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <VariableSizedWrapGrid  Orientation="Vertical" Margin="0,0,80,0" MaximumRowsOrColumns="3"   />
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
        </GridView.GroupStyle>
    </GridView>

现在在xaml.cs中执行此操作。

 objselectsubjectViewmodel = new SelectSubjectViewModel();
        groupedItemsViewSource.Source = objselectsubjectViewmodel.Categories;
        this.DataContext = this;

这里objselectsubjectViewmodel.Categories是你的数据模型.. 只是给它一点时间。