如何为Xamarin.form ListView实现MVVM

时间:2019-09-29 10:57:54

标签: xamarin.forms

我正在开发一个应用程序,该应用程序的主页面名为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"
                  >

0 个答案:

没有答案