Как отобразить плоский список с помощью управления телефоном LongListSelector WP8

В toolkit LongListSelector раньше было свойство IsFlatList, для которого нужно было установить значение true, чтобы отобразить плоский список без какой-либо группировки. Но в LongListSelector в элементе управления телефоном это свойство отсутствует. Вот что я делаю

<phone:LongListSelector Name="myList"  IsGroupingEnabled="False" LayoutMode="List" ItemsSource="{Binding Source ={StaticResource SortedList} }" CacheMode="BitmapCache"  >
                <phone:LongListSelector.ItemTemplate>
                    <DataTemplate>
                        <components:MyControl  CacheMode="BitmapCache" MyItem="{Binding}"/>
                    </DataTemplate>
                </phone:LongListSelector.ItemTemplate>
            </phone:LongListSelector>

Если я изменю элемент управления на ListBox и удалю конкретное свойство LongListSelector, тогда он отобразит мой список.

Может кто-нибудь, пожалуйста, скажите мне, что мне не хватает? Я следую этому(Примечания) документация LongListSelector


person ua741    schedule 08.01.2013    source источник


Ответы (2)


В версии LongListSelector для Windows Phone 8 установка LayoutMode в List и IsGroupingEnabled в false должна отображать ваши данные с привязкой к данным в виде плоского списка, как в версии элемента управления WP7 Toolkit.

Например,

Учитывая класс Entity

public class Entity
{
    public string Name
    {
        get;
        set;
    }

    public string Info
    {
        get;
        set;
    }

    public int ID
    {
        get;
        set;
    }
}

Все, что мне нужно сделать, это создать ObservableCollection of Entity на моей странице и привязать его к источнику элементов моего LongListSelector (именованный список).

ObservableCollection<Entity> data = new ObservableCollection<Entity>();
list.ItemsSourdce = data;

Затем я создаю объекты и добавляю их в коллекцию.

Вот XAML для моего LongListSelector:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <phone:LongListSelector Name="list" HorizontalAlignment="Left" Height="609" VerticalAlignment="Top" Width="456" LayoutMode="List" IsGroupingEnabled="False" >
            <phone:LongListSelector.ItemTemplate>
                <DataTemplate>
                    <StackPanel VerticalAlignment="Top">
                        <TextBlock FontWeight="Bold"  Text="{Binding Name}" />
                        <TextBlock Text="{Binding Info}" />
                    </StackPanel>
                </DataTemplate>
            </phone:LongListSelector.ItemTemplate>
        </phone:LongListSelector>
    </Grid>
person Strifex    schedule 17.01.2013
comment
Хмммммм. Проведя несколько часов, играя с LongListSelector в WP8 и не отображая свои данные, я изменил параметр Grouping enabled на false, и вуаля, данные появились! Может быть, что-то для других нубов WP8 (XAML?) рассмотреть. Я устанавливаю ItemSources в коде позади. Должно быть, у меня есть структурированные данные, которые представляют собой просто список простых объектов без группировки. - person SleepyBoBos; 23.08.2013
comment
Я показал в своем примере, что isGroupingEnabled должен быть установлен в false, если вы хотите обычный список, а не сгруппированный список. - person Strifex; 09.10.2013
comment
@SleepyBoBos, в первом предложении этого ответа сказано сделать именно это. - person MEMark; 05.01.2014

LayoutMode="List" - это все, что вам нужно.

person gleb.kudr    schedule 17.01.2013