Listview 转盘页面xamarin表单显示所选项目的详细信息
我有一个列表视图,它显示了一系列的项目,我的想法是单击一个,导航到一个旋转木马页面,并在那里显示它的详细信息 问题:转盘页面还必须知道此项目在主列表中的位置,OnSlide必须显示此选定项目的下一个/上一个项目 已完成: ListView已成功填充并显示可选项。Listview 转盘页面xamarin表单显示所选项目的详细信息,listview,xamarin,xamarin.forms,navigation,carousel,Listview,Xamarin,Xamarin.forms,Navigation,Carousel,我有一个列表视图,它显示了一系列的项目,我的想法是单击一个,导航到一个旋转木马页面,并在那里显示它的详细信息 问题:转盘页面还必须知道此项目在主列表中的位置,OnSlide必须显示此选定项目的下一个/上一个项目 已完成: ListView已成功填充并显示可选项。 OnSelectedItem将异步导航推到DetailPage并在那里显示其详细信息 现在的问题是,甚至可以填充旋转木马页面 已经联系过Xamarin团队,他们很乐意帮助我,把我送到这里或论坛,因为他们帮不了我什么忙。。。(已经尝试过论
OnSelectedItem将异步导航推到DetailPage并在那里显示其详细信息 现在的问题是,甚至可以填充旋转木马页面
已经联系过Xamarin团队,他们很乐意帮助我,把我送到这里或论坛,因为他们帮不了我什么忙。。。(已经尝试过论坛,现在已经等待了将近两个月:s,工作需要交付)。在推送您的详细页面集之前
CurrentPage
var detailPage = new CarouselPage();
// ...
detailPage.CurrentPage = index;
Navigation.PushAsync(detailPage);
如果以后加载项目,只需引入另一个属性。然后再推送DetailPage集
CurrentPage
var detailPage = new CarouselPage();
// ...
detailPage.CurrentPage = index;
Navigation.PushAsync(detailPage);
如果以后加载项目,只需引入另一个属性。我认为“最简单”的方法是使用列表视图和旋转页面(或Xamarin.Forms
Version2.2+中的CarouselView
)共享相同的项目资源
,但使用嵌入导航页面
中的不同数据模板
s,因此您可以免费推/弹出旋转木马页面
在ListView.ItemSelected
事件中,您可以将CarouselPage
的SelectedItem
设置为与ListView
中选择的项目相同,因为它们共享相同的数据源。然后只需将旋转木马页面推到当前页面,您就完成了……;-)
Xamarin.Forms
2.1使用CarouselPage
:
Xamarin.Forms
2.2使用CarouselView预发布:
结果:
注意:在Xamarin.Forms
2.2版(目前可通过预发行版Nuget获得)中,我强烈建议使用CarouselView
,它更快、更平均、更流畅、更快乐;-)只需将其嵌入您喜欢的页面类型
类即可
注:显示的辣酱数据来自,我修改了他的示例以使用DataTemplate
,因此回收和数据绑定是免费的……我认为“最简单”的方法是使用ListView
和CarouselPage
(或者Xamarin.Forms中的CarouselView
)共享相同的项目资源
,但使用嵌入导航页面
中的不同数据模板
s,因此您可以免费推/弹出旋转木马页面
在ListView.ItemSelected
事件中,您可以将CarouselPage
的SelectedItem
设置为与ListView
中选择的项目相同,因为它们共享相同的数据源。然后只需将旋转木马页面推到当前页面,您就完成了……;-)
Xamarin.Forms
2.1使用CarouselPage
:
Xamarin.Forms
2.2使用CarouselView预发布:
结果:
注意:在Xamarin.Forms
2.2版(目前可通过预发行版Nuget获得)中,我强烈建议使用CarouselView
,它更快、更平均、更流畅、更快乐;-)只需将其嵌入您喜欢的页面类型
类即可
注:显示的辣酱数据来自,我修改了他的样本,使用了DataTemplate
,因此回收和数据绑定是免费的……在此之前,感谢您的回答。很抱歉,我对Xamarin很陌生,所以这个问题可能看起来有点愚蠢,但是我应该将您在示例中使用CarouselPage编写的所有代码设置在哪里?到目前为止,我已经让App.cs打开了一个新的主页:从MasterDetailPage,并作为详细信息列表页打开。在MVVM arch的帮助下,我目前正在这个列表页面上做大部分的重视图工作,所以我现在有点迷路了,因为所有这些对我来说都是比较新的…@pemq原始代码来自(他在那个网站上有一个到他的Github帐户的链接)好的,找到了,所以你建议我在我已经调用列表页面的地方做所有这些,是吗?@pemq它在他的“OriginalProject”文件夹中好的,所以我想我知道了,当你提到调用SausePage()时,我应该(像adam那样)传递我选择的广告,而不是使用绑定属性,我只是在任何事情之前设置“Text=sauce.Name”,对吗?谢谢你的回答。很抱歉,我对Xamarin很陌生,所以这个问题可能看起来有点愚蠢,但是我应该将您在示例中使用CarouselPage编写的所有代码设置在哪里?到目前为止,我已经让App.cs打开了一个新的主页:从MasterDetailPage,并作为详细信息列表页打开。在MVVM arch的帮助下,我目前正在这个列表页面上做大部分的重视图工作,所以我现在有点迷路了,因为所有这些对我来说都是比较新的…@pemq原始代码来自(他在那个网站上有一个到他的Github帐户的链接)好的,找到了,所以你建议我在我已经调用列表页面的地方做所有这些,是吗?@pemq它在他的“OriginalProject”文件夹中好的,所以我想我知道了,当你提到调用SausePage()时,我应该(像adam那样)传递我选择的广告,而不是使用绑定属性,我只是设置“Text=sauce.Name”,对吗?
var carouselView = new CarouselView ();
carouselView.ItemTemplate = new DataTemplate (() => new SauceView ());
carouselView.ItemsSource = sauces;
var carouselDetailPage = new ContentPage {
Content = carouselView
};
var listView = new ListView (ListViewCachingStrategy.RecycleElement);
listView.ItemTemplate = new DataTemplate (() => new HotSauceCell ());
listView.ItemsSource = sauces;
listView.ItemSelected += (object sender, SelectedItemChangedEventArgs e) => {
carouselView.Position = sauces.IndexOf (e.SelectedItem as Sauce);
(MainPage as NavigationPage)?.PushAsync (carouselDetailPage, true);
};
MainPage = new NavigationPage (new ContentPage {
Content = listView
});