0

Мне нужно как-то выводить новую страницу с уже созданной (как в WEB приложении), я пытался сделать вызов на подобии этого, но ничего не получается так как доступа к Фрагменту нет из страницы. Посмотрел много инфы на стак оверфлоу, но ничего так и не нашел.

Как я перехожу на страницу

 private void List_btn(object sender, MouseButtonEventArgs e)
        {
            MyFrame.Content = new ListPageUser();
            MyFrame.NavigationService.RemoveBackEntry();
        }

Так же я исаползую ItemsControl который генирирует верстку из моей БД

 <ItemsControl Name="icCatList">
                           <ItemsControl.ItemsPanel>
                               <ItemsPanelTemplate>
                                   <StackPanel Orientation="Horizontal"/>
                               </ItemsPanelTemplate>
                           </ItemsControl.ItemsPanel>
                           <ItemsControl.ItemTemplate>
                               <DataTemplate>
                                   <materialDesign:Card Margin="10 0 10 10 " Cursor="Hand" materialDesign:ElevationAssist.Elevation="Dp3">
                                       <StackPanel Height="200" Width="200"> 
                                           <Image Source="F:\C#\Historical Saratov\Historical Saratov\App_Logo.png"/>
                                           <TextBlock
                                               FontSize="18"
                                               FontWeight="Medium"
                                               Text="{Binding Cat_Name}"
                                           />
                                           <TextBlock
                                               FontSize="15"
                                               FontWeight="Regular"
                                               Text="{Binding Description}"
                                           />
                                       </StackPanel>
                                   </materialDesign:Card>
                               </DataTemplate>
                           </ItemsControl.ItemTemplate>
                       </ItemsControl>

Как можно реализовать переход на нужную мне страницу ?

1 Answers1

0

Если в лоб, то можно передать фрейм как аргумент в коструктор

private Frame _parentFrame;

public ListPageUser(Frame parentFrame) { _parentFrame = parentFrame; InitializeComponent(); }

Вызвать вот так

MyFrame.Content = new ListPageUser(MyFrame);

Дальше уже разберётесь?

Но вообще, не советую использовать Frame+Page. Советую использовать MVVM и View как ресурсы (пример).

aepot
  • 49,560
  • Наверное да, спасибо. Я просто впервые опять поменял технологию навигации. А время переписывать код пока нет, в следующем проекте попробую сделать по другой технологии – Fainer Game Feb 25 '23 at 14:18
  • У меня не выходит по клику вызвать новый фрейм из Page – Fainer Game Feb 25 '23 at 17:29
  • @FainerGame _parentFrame.Content = new ...Page(); MessageBox туда воткните, убедитесь что обработчик вызывается. В любом случае код видите только вы, как я могу помочь? "Не выходит" - тоже непонятно, что означает. – aepot Feb 25 '23 at 19:08