Реализация списка предметов с множественным выбором
В моем приложении 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>
Когда вы запустите этот фрагмент кода, вы увидите следующее:
Вы можете прочитать больше о 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".