這就是我現在所做的,我無法發送ID到另一個頁面。并且命令引數有一個錯誤作為空參考例外。
xml:
<ListView x:Name="studentListView" ItemsSource="{Binding .} ">
<ListView.ItemTemplate >
<DataTemplate >
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding StudentID}"></Label>
<Label Text="{Binding FirstName}"></Label>
<Label Text="{Binding LastName}"></Label>
<Label Text="{Binding Gender}"></Label>
<Label Text="{Binding Age}"></Label>
<Label Text="{Binding Class}"></Label>
<StackLayout.GestureRecognizers>
<TapGestureRecognizer NumberOfTapsRequired="1" Tapped="TapGestureRecognizer_Tapped" CommandParameter="{Binding StudentID}"/>
<TapGestureRecognizer NumberOfTapsRequired="2" Tapped="TapGestureRecognizer_Tapped_1"/>
</StackLayout.GestureRecognizers>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
C#代碼如下:
private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
TapGestureRecognizer tapGesture = sender as TapGestureRecognizer;
int clubid = (int) tapGesture.CommandParameter;
Navigation.PushAsync(new StudentPage(clubid));
}
uj5u.com熱心網友回復:
您也可以直接TapGestureRecognizer在StudentID上添加一個Label,然后獲取 ID 值以將其發送到另一個 Page。以下是供您參考的代碼:
學生頁面 Xaml:
<ListView x:Name="studentListView" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Orientation="Horizontal">
<Label Text="{Binding StudentID}" WidthRequest="100" >
<Label.GestureRecognizers >
<TapGestureRecognizer NumberOfTapsRequired="2" Tapped="TapGestureRecognizer_Tapped">
</TapGestureRecognizer>
</Label.GestureRecognizers>
</Label>
<Label Text="{Binding FirstName}"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
后端代碼:
public StudentList()
{
InitializeComponent();
studentListView.ItemsSource = new List<MyStudent>
{
new MyStudent{StudentID="1", FirstName="Steve"},
new MyStudent{StudentID="2", FirstName="Lorence"}
};
}
private void TapGestureRecognizer_Tapped(object sender, EventArgs e)
{
//get the StudentID and pass it through constructor
var s = (sender as Label).Text;
Navigation.PushModalAsync(new MainPage(s));
}
然后,在另一個頁面中獲取StudentIDvia建構式。
public MainPage(string a)
{
InitializeComponent();
App.Current.MainPage.DisplayAlert("Student Id is", a, "OK");
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/512493.html
