1

我正在尝试在我的 Windows 8 应用程序中使用分组的 GridView,但我遇到了与我的非常大的项目有关的问题。

通过这个小例子,它会更容易理解:

<Page
    x:Class="TestGridView.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:TestGridView"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    mc:Ignorable="d">

    <Page.Resources>
        <CollectionViewSource
            x:Name="groupedItemsViewSource"
            IsSourceGrouped="true" />
    </Page.Resources>

    <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
        <GridView
            x:Name="itemGridView"
            ItemsSource="{Binding Source={StaticResource groupedItemsViewSource}}">
            <GridView.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Text}" FontSize="26"  Margin="20" />
                </DataTemplate>
            </GridView.ItemTemplate>
            <GridView.ItemsPanel>
                <ItemsPanelTemplate>
                    <VirtualizingStackPanel Orientation="Horizontal"/>
                </ItemsPanelTemplate>
            </GridView.ItemsPanel>
            <GridView.GroupStyle>
                <GroupStyle>
                    <GroupStyle.HeaderTemplate>
                        <DataTemplate />
                    </GroupStyle.HeaderTemplate>
                    <GroupStyle.Panel>
                        <ItemsPanelTemplate>
                            <VariableSizedWrapGrid Orientation="Vertical"/>
                        </ItemsPanelTemplate>
                    </GroupStyle.Panel>
                </GroupStyle>
            </GridView.GroupStyle>
        </GridView>
    </Grid>
</Page>

和代码隐藏:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        List<Value> list = new List<Value>
            {
                new Value { Text = "A11111"},
                new Value { Text = "A22222"},
                new Value { Text = "A333333333333333333333333333333333333#"},
                new Value { Text = "BBBBB"},
                new Value { Text = "CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC#"},
                new Value { Text = "DDDDD"},
                new Value { Text = "DDDDD"},
            };
        IEnumerable<List<Value>> values = from v in list
                                               group v by v.Text[0].ToString() into p
                                               orderby p.Key
                                               select new List<Value>(p);

        groupedItemsViewSource.Source = values;
    }
}

public class Value
{
    public string Text { get; set; }
}

问题是“A333333333333333333333333333333333333#”值被截断,尽管“CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC#”一个,不是。

我怎样才能在我的 gridview 上看到所有内容?

提前感谢您的帮助。此致

4

0 回答 0