gpt4 book ai didi

xamarin - 如何将 ListView.ItemTapped 事件绑定(bind)到 Xamarin Forms 中的 ViewModel 命令?

转载 作者:行者123 更新时间:2023-12-04 18:02:27 25 4
gpt4 key购买 nike

我正在使用 Prism 来实现 MVVM。

而且我有一种情况,我有一个 ListView 并且必须处理 ItemTapped 事件并获取被点击的项目。

我尝试使用 EventToCommandBehavior .

但我无法让它工作,因为它无法识别添加的引用。

最佳答案

EventToCommandBehavior目前在 NuGet 上可用的 pre1 包中不存在。这应该在 pre2 发布时可用。

我的建议是您现在将 EventToCommandBehavior 复制到您的项目中,或者您可以添加一个我使用的:

/// <summary>
/// ListView Item Tapped Behavior.
/// </summary>
public class ItemTappedBehavior : BehaviorBase<ListView>
{
/// <summary>
/// Gets or sets the command.
/// </summary>
/// <value>The command.</value>
public ICommand Command { get; set; }

/// <inheritDoc />
protected override void OnAttachedTo( ListView bindable )
{
base.OnAttachedTo( bindable );
AssociatedObject.ItemTapped += OnItemTapped;
}

/// <inheritDoc />
protected override void OnDetachingFrom( ListView bindable )
{
base.OnDetachingFrom( bindable );
AssociatedObject.ItemTapped -= OnItemTapped;
}

void OnItemTapped( object sender, ItemTappedEventArgs e )
{
if ( Command == null || e.Item == null ) return;

if ( Command.CanExecute( e.Item ) )
Command.Execute( e.Item );
}
}

然后在你的 Xaml
<ListView.Behaviors>
<behaviors:ItemTappedBehavior Command="{Binding SelectedItemCommand}" />
</ListView.Behaviors>

关于xamarin - 如何将 ListView.ItemTapped 事件绑定(bind)到 Xamarin Forms 中的 ViewModel 命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41929086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com