私はハブ要素を持っており、この要素をハブセクションのタッチ/クリックで移動したいと考えています。 HubSection-Elementsはクリック可能ではないので(「SeeHeererClick」、これはむしろ「もっと見る」リンクを生成する)、私はGridViewをクリック可能にしました。私のViewModelでXAMLで祖父母要素を取得
<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>
-methodだから基本的に私はMVVMスタイルにフレーム要素にアクセスする必要が
public void hubClick(object sender, ItemClickEventArgs e)
{
GridView gridview = sender as GridView;
// "GrandGrandParent" equivalent ?
Frame frame = gridview.GrandGrandParent;
frame.Navigate(typeof(View.page1));
}
のPage1にフレームを移動しなければならない「クリック」。フレームにアクセスするにはどうしたらいいですか?
しかし、問題は "getParent"が私に "DataTemplate"要素を与えることです、私は親ではない "frame"要素が必要です。 – inix42
目的の要素が得られるまで、このメソッドを何度も呼び出す – Archana
publicのようなジェネリック型で再帰関数を書くことができます GetParent(要素){var parent = VisualTreeHelper.GetParent(); if(parentがT){return parrnt } else {GetParent (親)} –
Archana