Ich arbeite an einer UWP-Anwendung, die versucht, die Transform3DAnimations
aus den Plattform-Beispielen mit einer GridView
anstelle einer HubSection
zu implementieren. Ich habe alles herausgefunden außer dem Holen der GridViewItem
. Der folgende Code stammt aus dem Beispiel im Zusammenhang mit einem Hubabschnitt.find gridViewItem von einem GridView von codeBehind 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();
}
}
Ich versuche, die GridViewItem
zu holen, aber ich bin nicht in der Lage, die GridViewItem
es gibt mir immer das Datenmodell der GridViewItem
zu holen. Wie kann ich die GridViewItem
von der GridView
bekommen? Mein Code ist unten:
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
Im Beispiel verwenden sie die Methode die Elemente in der aktuellen Ansicht der hubsection zu bekommen und dann den Behälter für ein zufälliges Objekt erhalten, die in der aktuellen Ansicht ist, und dann den Datenkontext ändern. Ich möchte nicht den Container des Objekts abrufen, auf dem sich ein ausgewähltes Ereignis oder ein ausgewähltes Ereignis befindet. Bei einem Timer-Tick möchte ich die Elemente in der aktuellen Ansicht der Gridview holen und dann ein zufälliges von ihnen holen und seinen Container (vom Typ gridviewitem) holen und dann den Datenkontext aktualisieren. Kannst du bitte helfen. Entschuldigung für meine Formatierung Ich verwende die mobile App –
Ich habe Ihren Code versucht, die 'var container = AllDevicesGridView.ContainerFromItem (AllDevicesGridView.Items [1]);' 'gibt mir einen Container, aber der Datenkontext des Containers ist null. Fehle ich etwas? –
@AdityaSharma, wenn Sie den Datenkontext des Elements abrufen oder ändern müssen, müssen Sie möglicherweise das Objekt 'ListViewItemPresenter' aus dem' GridViewItem' abrufen. Ich werde den Code aktualisieren, um den Datenkontext zu erhalten. –