您好我正在开发使用xamarin构建的移动应用程序表格主页面是一个列表视图,其中列出了类别。我需要发生的是当用户点击列表视图中的某个项目时,它会在应用程序中打开新页面,而下面是xaml代码:
newline character
所以我的问题是什么代码beind使数学提交带你到MathToolsHome类?等等?
任何帮助都会很棒!
提前感谢一百万! :)
答案 0 :(得分:5)
为Listview定义ItemSelected:
<ListView HasUnevenRows="true"
ItemSelected="OnItemSelected">
然后编写处理程序代码:
private void OnItemSelected(object sender, SelectedItemChangedEventArgs e)
{
var item = e.SelectedItem;
// Your code here
}
答案 1 :(得分:2)
你可能正在寻找TapGestureRecognizer,你在调用InitializeComponent()之后在SchoolTools.HomePage的构造函数中设置了它:
var mathTapRecognizer = new TapGestureRecognizer();
mathTapRecognizer.Tapped += async delegate {
// Whatever you need to do here, like
await Navigation.PushAsync(new MathToolsHome());
};
Math.GestureRecognizers.Add(mathTapRecognizer);
假设MathToolsHome是某种页面。
修改强>
添加XAML解决方案......
通过你拥有XAML的方式,我概述的方法将不会起作用,因为你无法改变DataTemplates成员的设置(这就是为什么编译器将Math绑定到System.Math而不是布局中的标签)。
最简单的方法是将TapGestureRecognizer添加到您的XAML中,同时调用您的代码隐藏。
XAML:
<Label x:Name ="Math" Text="Math" HorizontalOptions="Center">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="Math_Clicked"/>
</Label.GestureRecognizers>
</Label>
在您的代码中:
public async void Math_Clicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new MathToolsHome());
}
我用纯C#而不是XAML编写了更多的DataTemplate实现,但这种方法应该可行。