问题描述
我有以下 XAML 视图,当点击该项目时,我想导航到详细信息页面:
<ListView x:Name="ProductsList" ItemsSource="{Binding Products}"
HasUnevenRows="True"
SelectedItem="{Binding SelectedProduct}"
ItemTapped="ProductItem_OnTapped">
<ListView.ItemTemplate>
<DataTemplate>
<local1:ProductTemplate />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这是处理程序:
public async void ProductItem_OnTapped(ItemTappedEventArgs e)
{
var productDetailVM = new ProductDetailviewmodel(SelectedProduct);
var productDetailView = new ProductDetail();
productDetailView.BindingContext = productDetailVM;
await Application.Current.MainPage.Navigation.PushAsync(productDetailView);
}
我得到的错误是这样的:
在类型“ProductTest.MainPage”中找不到具有正确签名的事件处理程序“ProductItem_OnTapped”。
解决方法
ProductItem_OnTapped
应该使用类型为 object 的第一个发送方参数声明,并确保它在代码隐藏中定义(在本例中为 MainPage.xaml.cs
)。
public async void ProductItem_OnTapped(object sender,ItemTappedEventArgs e)