我正在开发一个应用程序,该应用程序的主页面名为ItemsPage
,其中包含一个ListView
,另一个页面名为DetailPage
,我正在尝试移动OnItemSelected
功能从ItemsPage
类到ItemsPageModel
。我要实现的功能是单击该项目后,应弹出另一个DetailPage
,其中包含被单击项目的详细信息。我该怎么办?谢谢!
ItemsPage: public partial class ItemsPage : ContentPage {
ItemsViewModel viewModel;
public ItemsPage() {
InitializeComponent();
BindingContext = viewModel = new ItemsViewModel();
}
async void OnItemSelected(object sender, SelectedItemChangedEventArgs args) {
var item = args.SelectedItem as Item;
if (item == null)
return;
var viewModel = BindingContext as ItemsViewModel;
viewModel.SelectedItem = item;
await Navigation.PushAsync(new ItemDetailPage(new ItemDetailViewModel(item)));
// Manually deselect item.
ItemsListView.SelectedItem = null;
}
}
<ListView x:Name="ItemsListView"
ItemsSource="{Binding Items}"
VerticalOptions="FillAndExpand"
HasUnevenRows="true"
RefreshCommand="{Binding LoadItemsCommand}"
IsPullToRefreshEnabled="true"
IsRefreshing="{Binding IsBusy, Mode=OneWay}"
CachingStrategy="RecycleElement"
ItemSelected ="OnItemSelected"
>