Bir Hub Öğe'ye sahibim ve bu öğeleri bir göbek kısmındaki bir dokunuşla/tıklatmayla gezinmek istiyorum. HubSection-Elements tıklanamaz olduğundan (sadece "MoreHeader" bağlantısını üreten "SectionHeaderClick" aracılığıyla), GridView'ı tıklanabilir yaptık. benim ViewModel içindeXAML içinde büyükbabalık öğeyi alın
<Frame x:Name="frame">
<Hub VerticalAlignment="Center" HorizontalAlignment="Center" >
<HubSection Width="250" x:Name="section1" IsHeaderInteractive="True" >
<DataTemplate>
<GridView IsItemClickEnabled="True" ItemClick="{x:Bind MainPageVM.click}">
<RelativePanel>
<Image x:Name="image" Source="Assets/1.png" Width="Auto" Height="250" />
<TextBlock x:Name="page1" Text="page1" />
</RelativePanel>
</GridView>
</DataTemplate>
</HubSection>
//....
</Hub>
</Frame>
"tıklayın" metodu çerçeve Böylece temelde bir MVVM tarzı çerçeve elemanı erişmek zorunda
public void hubClick(object sender, ItemClickEventArgs e)
{
GridView gridview = sender as GridView;
// "GrandGrandParent" equivalent ?
Frame frame = gridview.GrandGrandParent;
frame.Navigate(typeof(View.page1));
}
Page1 gidin gerekir. Çerçeveye nasıl erişebilirim? Eğer olay VisualTreeHelper yöntem GetParent() kullanabilir
Fakat sorun şu ki, "getParent" bana "DataTemplate" öğesini verir, ebeveyn olmayan "frame" öğesine ihtiyacım var. – inix42
İstediğiniz elemanı – Archana
elde edinceye kadar bu yöntemi tekrar tekrar arayın Bu genel gibi genel türden bir özyinelemeli işlev yazabilirsiniz GetParent (öğe) {var parent = VisualTreeHelper.GetParent(); if (parent T) {return parrnt } else {GetParent (ebeveyn)} –
Archana