我正在尝试使用Xamarin Forms
和MVVMLight
来构建应用程序。我已经使用菜单项创建了主详细信息页面。
当用户点击菜单项时,我要浏览页面。现在的问题是使用ItemTapped
为ListView
创建MVVMLight
事件
我试图通过网络查找,但无法获得真正有效的正确答案。
到目前为止,我尝试使用EventToCommand
实现MVVMLight
,但是xaml通过说
在交互类型中找不到附加属性“行为”
<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:i =“ clr-namespace:System.Windows.Interactivity; assembly = System.Windows.Interactivity” xmlns:cmd =“ clr-namespace:GalaSoft.MvvmLight.Command; assembly = GalaSoft.MvvmLight.Extras”
当我不使用MVVMLight
时,我曾经使用自定义行为,例如behaviors:ItemTappedCommandBehavior.ItemTappedCommand="{Binding OnContactSelectCommand}"
但是我真的不知道如何使用MVVMLight
做同样的事情。我正在尝试在 Android和iOS平台
答案 0 :(得分:0)
在菜单的ListView中显示项目时,您可以利用ListView的内置功能来了解用户的“选择”。
换句话说,只需将ListView的SelectedItem属性绑定到VM中的属性。 在该属性设置器中,您可以对逻辑进行编码以触发正确的页面导航。
因此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>