ListView ItemTapEvent с использованием MVVMLight - PullRequest
0 голосов
/ 12 ноября 2018

Я пытаюсь создать приложение, используя Xamarin Forms и MVVMLight. Я создал главную страницу деталей с пунктами меню. когда пользователь нажимает на элемент меню, я хочу перемещаться по странице. Теперь проблема в том, чтобы создать событие ItemTapped для ListView, используя MVVMLight Я пытался найти через Интернет, но не смог получить правильный ответ, который действительно работает.

До сих пор я пытался реализовать EventToCommand, используя MVVMLight, но xaml выдает ошибку, сказав

Свойство присоединяемого поведения не найдено в типе Interaction

<ListView 
            ItemsSource="{Binding MenuItemsList}"            
            CachingStrategy="RecycleElement"           
            Margin="0,0,0,10"
            RowHeight="110"
            SeparatorVisibility="Default"
            x:Name="MenuList"

            >
            <i:Interaction.Behaviors>
                <i:BehaviorCollection>
                    <cmd:EventToCommand EventName="ItemSelected" Command="{Binding OnTapCommand}"                                   
                </i:BehaviorCollection>
            </i:Interaction.Behaviors>
              <DataTemplate>
                    <ViewCell>
                    </ViewCell>
              </DataTemplate>
</ListView>

пространства имен, которые я использую, упомянуты ниже

XMLNS: я = "CLR-имена: System.Windows.Interactivity; сборка = System.Windows.Interactivity" XMLNS: CMD = "CLR-имена: GalaSoft.MvvmLight.Command; сборка = GalaSoft.MvvmLight.Extras"

когда я не использовал MVVMLight я использовал нестандартное поведение, такое как behaviors:ItemTappedCommandBehavior.ItemTappedCommand="{Binding OnContactSelectCommand}"

но я действительно не знаю, как сделать то же самое с MVVMLight. Я пытаюсь запустить мобильное приложение на платформе Android и iOS 1029 *

1 Ответ

0 голосов
/ 12 ноября 2018

При отображении элементов в ListView для меню вы можете просто использовать встроенную функциональность ListView, чтобы узнать, что «выбрал» пользователь.

Другими словами, просто привяжите свойство SelectedItem ListView к свойству в вашей виртуальной машине. В этом установщике свойств вы можете написать свою логику, чтобы вызвать правильную навигацию по страницам.

Таким образом, XAML должен выглядеть так:

<ListView ItemsSource="{Binding MenuItemsList}"
          CachingStrategy="RecycleElement"
          Margin="0,0,0,10"
          RowHeight="110"
          SeparatorVisibility="Default"
          x:Name="MenuList"
          SelectedItem="{Binding SelectedMenuItem}">
    <DataTemplate>
        <ViewCell>
        </ViewCell>
    </DataTemplate>
</ListView>
...