在FreshMvvm中侦听ItemTapped事件

在FreshMvvm中侦听ItemTapped事件,mvvm,xamarin.forms,freshmvvm,Mvvm,Xamarin.forms,Freshmvvm,在我的项目中,我有一个列表视图,现在听SelectedItem更改很容易,每个教程都有,但我找不到任何关于使用ItemTapped事件的内容 在modelPage中将事件绑定到什么 谢谢 Mike由于itemtrapped是一个事件,而不是命令(或BindableProperty),因此不能直接从PageModel使用它 他们为此发明了类似于行为的东西。通过行为,您可以将事件转换为命令 虽然有第三方插件可以这样做,但它也内置于 让我用Corcav one解释一下,其他实现应该是类似的。我还假设您

在我的项目中,我有一个列表视图,现在听SelectedItem更改很容易,每个教程都有,但我找不到任何关于使用ItemTapped事件的内容

在modelPage中将事件绑定到什么

谢谢


Mike

由于
itemtrapped
是一个事件,而不是
命令(或
BindableProperty
),因此不能直接从
PageModel
使用它

他们为此发明了类似于
行为的东西。通过行为,您可以将
事件
转换为
命令

虽然有第三方插件可以这样做,但它也内置于

让我用Corcav one解释一下,其他实现应该是类似的。我还假设您正在使用XAML

首先,安装NuGet,不要忘记在页面中包含正确的名称空间,这意味着添加如下内容:
xmlns:behaviors=“clr namespace:Corcav.behaviors;assembly=Corcav.behaviors”

现在在您的
列表视图下
声明您的
行为
如下:

<!-- ... more XAML here ... -->
<ListView IsPullToRefreshEnabled="true" RefreshCommand="{Binding RefreshDataCommand}" IsRefreshing="{Binding IsBusy}"  IsVisible="{Binding HasItems}" ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" CachingStrategy="RecycleElement">
        <behaviors:Interaction.Behaviors>
          <behaviors:BehaviorCollection>
            <behaviors:EventToCommand EventName="ItemSelected" Command="{Binding ItemSelectedCommand}" />
          </behaviors:BehaviorCollection>
        </behaviors:Interaction.Behaviors>

<!-- ... more XAML here ... -->
\u selectedItem
为抽头项目分配的属性。
当然,您可以做得更好,并为行为提供一个
CommandParameter
,您可以在其中放置点击的项引用

谢谢你的帮助,这很有意义。
private void ItemSelected()
{
    // Open the article page.
    if (_selectedItem != null)
    {
        CoreMethods.PushPageModel<GroupArticlePageModel>(_selectedItem, false, true);
    }
 }