C# 如何处理Xamarin.Forms中代码中定义的ViewCell的点击?
我在TableView中有多个ViewCell和ImageCell子类 我想在用户点击单元格时执行一些代码。无论何时触摸整个单元格,它都会高亮显示,但我在这里看不到任何可使用的事件处理程序 这不是只有在代码中才有XAML的等价物吗 我相信一定有一些API可以处理这个问题。也许我只是找对了地方C# 如何处理Xamarin.Forms中代码中定义的ViewCell的点击?,c#,xamarin,xamarin.forms,tableview,C#,Xamarin,Xamarin.forms,Tableview,我在TableView中有多个ViewCell和ImageCell子类 我想在用户点击单元格时执行一些代码。无论何时触摸整个单元格,它都会高亮显示,但我在这里看不到任何可使用的事件处理程序 这不是只有在代码中才有XAML的等价物吗 我相信一定有一些API可以处理这个问题。也许我只是找对了地方 谢谢大家! 这可以通过将TapGestureRecognitor添加到单元格的视图布局中来实现 var absoluteLayout = new AbsoluteLayout { Children
谢谢大家! 这可以通过将TapGestureRecognitor添加到单元格的视图布局中来实现
var absoluteLayout = new AbsoluteLayout
{
Children =
{
photo,
editImage,
label
}
};
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.NumberOfTapsRequired = 1;
tapGestureRecognizer.Tapped += (s, e) => {
// handle the tap
};
absoluteLayout.GestureRecognizers.Add(tapGestureRecognizer);
View = absoluteLayout;
编辑:
或者,更好的替代方法是使用ViewCell的Tapped属性,这样就不会破坏“Tap动画”:
这可以通过向单元格的视图布局添加TapGestureRecognitor来实现
var absoluteLayout = new AbsoluteLayout
{
Children =
{
photo,
editImage,
label
}
};
var tapGestureRecognizer = new TapGestureRecognizer();
tapGestureRecognizer.NumberOfTapsRequired = 1;
tapGestureRecognizer.Tapped += (s, e) => {
// handle the tap
};
absoluteLayout.GestureRecognizers.Add(tapGestureRecognizer);
View = absoluteLayout;
编辑:
或者,更好的替代方法是使用ViewCell的Tapped属性,这样就不会破坏“Tap动画”:
Tapped += new EventHandler((e, s) => {
if (command.CanExecute(null))
{
command.Execute(null);
}
});