【发布时间】:2023-03-19 14:28:01
【问题描述】:
我想在我的 viewModel 中选择数据
这是我的 xaml,但我不知道如何解决我的 xaml,因为这很糟糕,如何在我的 xaml 中使用我的行为?
<ListView.Behaviors>
<behaviors:ItemTappedBehavior EventName="ItemSelected">
<behaviors:InvokeCommandAction Command="{Binding SelectedTagChanged}" />
</behaviors:ItemTappedBehavior>
</ListView.Behaviors>
<ListView ItemsSource="{Binding actors}" ItemTapped="ListView_ItemTapped">
在我的后台代码中
public partial class ActorsView : ContentPage
{
public AccountsView()
{
InitializeComponent();
}
async void ListView_ItemTapped(object sender, ItemTappedEventArgs e)
{
Actor selectedItem = (Actor)e.Item;
Console.WriteLine("WORK"+ Actor.Name);
}
但我想进入我的 viewModel,不要进入我的后台代码
我已经看到解决方法是命令或行为
这是我的视图模型:
public class ActorsViewModel : ViewModelBase
{
public List<Actor> actors { get; set; }
public AccountsViewModel(IActorManager actorManager)
: base()
{
编辑,我正在使用命令,但我不知道如何使用 John Livermore 的答案,我想使用并显示控制台 Console.WriteLine("ROW");.
public class ItemTappedBehavior : Behavior<ListView>
{
public ICommand Command { get; set; }
protected override void OnAttachedTo(ListView bindable)
{
base.OnAttachedTo(bindable);
}
protected override void OnDetachingFrom(ListView bindable)
{
base.OnDetachingFrom(bindable);
}
public Command SelectedTagChanged
{
get
{
return new Command(row =>
{
Console.WriteLine("ROW");
});
}
}
}
【问题讨论】:
-
发布您的 ViewModel.cs 和您的 Page.cs 构造函数。
-
@Greggz 什么 page.cs?我编辑了我的问题
-
您的代码在其中的 Page.cs
-
@Greggz 我编辑了我的问题,请看,我没有很多代码
-
你是怎么绑定你的
actors的,你还没有绑定你页面的BindingContext和ActorsViewModel
标签: xamarin.forms