Реализация списка предметов с множественным выбором

В моем приложении WP8 я хотел бы реализовать функциональность, которая очень похожа на то, что присутствует в стандартном почтовом приложении - возможность для пользователя выбирать несколько элементов из списка. Я предоставил несколько скриншотов, чтобы проиллюстрировать это поведение:

Нормальное состояние:
Нормальное состояние

Пользователь нажимает на левый угол элемента, и он становится синим:Пользователь нажимает на левый угол элемента, и он становится синим

Товар выбран
Товар выбран

Мой вопрос заключается в том, является ли эта возможность множественного выбора стандартной опцией для некоторого элемента управления контейнером, или мне нужно выполнить какое-то пользовательское программирование для достижения этой цели? В последнем случае, какой наилучший подход вы бы использовали для реализации этого, пожалуйста, поделитесь своими мыслями.

2 ответа

Решение

Для WP8 Multi-Selection вам нужно будет использовать LongListMultiSelector из Windows Phone Toolkit.

Вы можете найти примеры кода о том, как использовать LongListMultiSelector здесьздесь для кода позади). Вот соответствующие фрагменты кода XAML:

    <phone:PivotItem x:Name="BuddiesPivotItem" Header="Std longlistmultiselector">
        <toolkit:LongListMultiSelector x:Name="buddies" Background="Transparent"
                Margin="0,-8,0,0"
                ItemsSource="{StaticResource buddies}"
                LayoutMode="List"
                IsGroupingEnabled="True"
                HideEmptyGroups="True"
                JumpListStyle="{StaticResource BuddiesJumpListStyle}"
                GroupHeaderTemplate="{StaticResource BuddiesGroupHeaderTemplate}"
                ItemTemplate="{StaticResource BuddiesItemTemplate}"
    />
    </phone:PivotItem>

    <phone:PivotItem x:Name="GridModeItem" Header="Grid mode">
        <toolkit:LongListMultiSelector x:Name="GridSelector"
               ItemsSource="{StaticResource PicturesAlbum}"
               IsGroupingEnabled="False"
               GridCellSize="210,180"
               LayoutMode="Grid"
               HideEmptyGroups="True"
               ItemTemplate="{StaticResource PictureItemTemplate}"
               IsSelectionEnabledChanged="OnGridSelectorIsSelectionEnabledChanged"
               SelectionChanged="OnGridSelectorSelectionChanged"
        />
    </phone:PivotItem>

Когда вы запустите этот фрагмент кода, вы увидите следующее:

LongListMutliSelector печать экрана

Вы можете прочитать больше о Windows Phone 8 Toolkit здесь.

LonglistmultiSelector отсутствует в моем наборе инструментов..

если я запускаю следующий код:

<toolkit:LongListMultiSelector x:Name="EmailList" 
                                                Margin="0,14,-12,0"
                                                ItemsSource="{StaticResource EmailCollection}"
                                                LayoutMode="List"
                                                SelectionChanged="OnEmailListSelectionChanged"
                                                          IsSelectionEnabledChanged="OnEmailListIsSelectionEnabledChanged"
                                                ItemTemplate="{StaticResource EmailItemTemplate}"
                                                ItemInfoTemplate="{StaticResource EmailItemInfoTemplate}"
            />

if get Error: Ошибка 1 Имя "LongListMultiSelector" не существует в пространстве имен "clr-namespace:Microsoft.Phone.Controls; Assembly=Microsoft.Phone.Controls.Toolkit".

Другие вопросы по тегам