0

我正在尝试制作一个 wp8 应用程序,但我正在努力使用 longlistselector。

我的列表在一个网格中,我希望看到该列表与网格具有相同的宽度,但我不想使用硬编码的宽度。

这是我的代码:

    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="1" Margin="0,0,0,0">
        <phone:LongListSelector Margin="0,0,0,0" 
                                x:Name="GetSubject" 
                                HorizontalContentAlignment="Stretch" 
                                IsGroupingEnabled="False" 
                                SelectionChanged="LongListSelector_SelectionChanged_1" 
                                VerticalAlignment="Top" 
                                HorizontalAlignment="Left" >
            <phone:LongListSelector.ItemTemplate>
                <DataTemplate>                        
                     <TextBlock Text="{Binding Name}" /> 
                </DataTemplate>
            </phone:LongListSelector.ItemTemplate>
        </phone:LongListSelector>
    </Grid>

但是当我添加项目时,宽度不会改变。但是当我给 longlistselector 一个设定的宽度时,项目就在那里。

包含项目的列表是一个可观察的集合

        var folder = ApplicationData.Current.LocalFolder;
        var files = await folder.GetItemsAsync();
        ObservableCollection<ListSubject> subs = new ObservableCollection<ListSubject>();

        subs.Add(new ListSubject("Foo"));
        subs.Add(new ListSubject("Bar"));



        foreach (var f in files)
        {

            if (f.IsOfType(StorageItemTypes.File) && f.Name.EndsWith(".subj"))
            {
                subs.Add(new ListSubject(f.Name.Remove(f.Name.Length - 5)));
            }

        }

        this.GetSubject.ItemsSource = subs;

那么如何让 longselectorlist 成为它所在的网格的宽度呢?

4

1 回答 1

0

实际上,您已将LongListSelector的 Horizo ​​ntalAlignment属性设置为 left,这就是它发生的原因。所以你已经把它设置成这样拉伸..

HorizontalAlignment="Stretch"

我认为它会解决你的问题。

于 2013-08-29T11:44:01.160 回答