我正在尝试使用GridView
而不是HubSection
从尝试实现Transform3DAnimations
的平台样本实现的UWP应用程序。除了取得GridViewItem
之外,我已经明白了。下面的代码是从上下文中的示例到hubsection。从代码隐藏的GridView中获取gridViewItem UWP
private void UpdateRandomSection()
{
// Updating the section triggers a cool animation!
// See SectionView.xaml and SectionView.xaml.cs
var sectionsInView = HeadlinesHub.SectionsInView;
var sectionsCount = sectionsInView.Count;
if (sectionsCount > 0)
{
var sectionToUpdate = sectionsInView[_random.Next(sectionsCount)];
sectionToUpdate.DataContext = new HeroArticlesViewModel();
}
}
我试图获取GridViewItem
,但我无法获取它总是返回我GridViewItem
的数据模型GridViewItem
。如何从GridView
获得GridViewItem
?我的代码如下:
private Random InAppLiveTileRandomTileNumberGenerator;
private void UpdateRandomSection()
{
var sectionsInView = AllDevicesGridView.Items;
var sectionsCount = sectionsInView.Count;
if (sectionsCount > 0)
{
var sectionToUpdate = (GridViewItem)AllDevicesGridView.Items[InAppLiveTileRandomTileNumberGenerator.Next(sectionsCount)]; //Invalid Cast exception here
sectionToUpdate.DataContext = new InappLiveTileViewModelModel();
}
}
Solution I tried from stack answers
在示例中,他们使用该方法获取hubsection当前视图中的项目,然后获取当前视图中随机对象的容器,然后更改数据上下文。我不想获取有选定事件或已被选择的对象的容器。在计时器滴答声上,我想获取gridview的当前视图中的项目,然后从它们中获取一个随机数并获取它的容器(类型为gridviewitem),然后更新它的数据上下文。能否请你帮忙。对不起,我正在使用移动应用程序 –
我试过了你的代码,var container = AllDevicesGridView.ContainerFromItem(AllDevicesGridView.Items [1]);'确实返回了一个容器,但该容器的数据上下文为空。我错过了什么吗? –
@AdityaSharma,如果您需要获取或更改项目的数据上下文,您可能需要从'GridViewItem'获取'ListViewItemPresenter'对象。我将更新代码以获取数据上下文。 –