WP7 ListBox, как разрешить пользователю заказывать товары - PullRequest
2 голосов
/ 21 ноября 2010

Сценарий: приложение Windows Phone 7 с использованием MVVM.У меня есть ListBox, который связан с коллекцией элементов из моей ViewModel.Основное использование этого представления - позволить пользователю переупорядочивать элементы по своему вкусу.

Как мне реализовать это в WP7?Я бы хотел сделать так, чтобы пользователь просто перетаскивал элементы в нужное им положение.Есть ли встроенная поддержка такого жеста?(Я не смог найти ни одного).

Ответы [ 3 ]

3 голосов
/ 21 ноября 2010

Вы можете включить в свой проект Silverlight для Windows Phone Toolkit , а затем использовать GestureListener для прослушивания событий DragStarted, DragDelta и DragComplete.

1 голос
/ 04 марта 2012

Это решение действительно хорошо работает

http://blogs.msdn.com/b/jasongin/archive/2011/01/03/wp7-reorderlistbox-improvements-rearrange-animations-and-more.aspx

Это элемент управления, который вы просто перетаскиваете в свое приложение, и вы можете просто включить маркеры перетаскивания и перемещаться по элементам в ListBox.

1 голос
/ 21 ноября 2010

Как заявил AnthonyWJones, GesureListener, вероятно, то, что вы ищете.Я просто хотел добавить, что вы можете использовать FluidMoveBehavior для списка, чтобы элементы плавно анимировались при изменении порядка элементов.На мой взгляд, это значительно улучшает пользовательский опыт.

Поведение перемещения жидкости достаточно просто, чтобы просто «подключиться» к существующему списку, например:

<Style TargetType="ListBox" x:Key="FluidListBox">
    <Setter Property="ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <StackPanel>
                    <i:Interaction.Behaviors>
                        <ei:FluidMoveBehavior AppliesTo="Children" Tag="DataContext">
                            <ei:FluidMoveBehavior.EaseY>
                                <BackEase EasingMode="EaseInOut" Amplitude="0.5"/>
                            </ei:FluidMoveBehavior.EaseY>
                            <ei:FluidMoveBehavior.EaseX>
                                <BackEase EasingMode="EaseInOut" Amplitude="0.5"/>
                            </ei:FluidMoveBehavior.EaseX>
                        </ei:FluidMoveBehavior>
                    </i:Interaction.Behaviors>
                </StackPanel>
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
</Style>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...