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; }
}

問題は、「CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC#」ではなく、「A33333333333333333333333333#」の値が切り捨てられることです。

gridview にすべてを表示するにはどうすればよいですか?

助けてくれてありがとう。よろしくお願いします

4

0 に答える 0