2017-02-11 6 views
1

UWP 앱을 개발 중입니다. 루트 프레임 탐색에 문제가 있습니다. 메인 페이지에 프레임이 있으며이 프레임으로 모든 페이지를 탐색합니다. dashboard.xaml, orders.xaml .... 등. 내 orders.xaml 다른 프레임이 있습니다. 해당 프레임에서 취소 버튼을 누르면 3 개의 양식 (취소 버튼이있는 xaml 페이지)으로 이동합니다. 해당 페이지에서 취소 버튼을 누르면 , 내 주문 페이지로 돌아갈 필요가 있습니다 ... 그래서 내 Orders.xaml을 탐색하기 위해 메인 페이지 프레임을 가져 오는 데 문제가 있습니다. 제발 도와주세요. 사전하위 페이지 프레임에서 기본 페이지 프레임까지의 UWP 탐색

+1

디자인을 다시 생각해 봐야합니다. 세 가지 수준의 탐색은 사용자 친화적 인 측면에서 너무 복잡합니다. 사용자 정의 컨트롤을 교체하십시오. – Bart

답변

0

은 당신이 원하는 것을 달성하기 위해 여러 가지 방법이 있습니다. 예를 들어 Frame을 노출하는 public static 속성을 Mainpage에 정의 할 수 있습니다.

public sealed partial class MainPage : Page 
{ 
    public static Frame MainPageFrame; 

    public MainPage() 
    { 
     this.InitializeComponent(); 
     //Frame1 is the name of the Frame in XAML 
     MainPageFrame = Frame1; 
    } 

    ... 
} 

그리고 주문 세부 정보 페이지에 탐색이 속성을 사용합니다.

MainPage.MainPageFrame?.Navigate(typeof(Orders)); 

아니면 VisualTreeHelper을 활용하고 같은 부모 Frame 즉, "프레임 1"얻을 수 있습니다 :

:

//this.Frame gets the Frame holds the order details page (i.e "Frame2") 
FindParent<Frame>(this.Frame)?.Navigate(typeof(Orders)); 

가 여기 FindParent 방법은 도움말 방법은 다음과 VisualTreeHelper.GetParent 방법을 사용합니다

public static T FindParent<T>(DependencyObject dependencyObject) where T : DependencyObject 
{ 
    var parentObject = VisualTreeHelper.GetParent(dependencyObject); 

    if (parentObject == null) return null; 

    var parent = parentObject as T; 
    return parent ?? FindParent<T>(parentObject); 
} 
+0

정말 많은 Jay에게 감사드립니다 ... 작동 VIsualTreeHelper 메소드 사용 – Murali

1

감사이 그것을 수행해야합니다

Frame.Navigate(typeof(orders)); 
+0

답변 해 주셔서 감사합니다. 위 내용을 시도 할 때 주문 페이지를 틀린 프레임 (메인 페이지 프레임이 아님)로 이동합니다. 메인 페이지 -> 프레임 1 -> Orders.xaml -> createOrder (버튼) -> 클릭 -> 탭이있는 xaml 페이지 및 각 탭의 Frame2 -> 페이지 (양식)를 탐색하여 주문합니다. 사용자로부터의 세부 사항, 각 폼 취소, 취소를 클릭하십시오. 주문 페이지 (즉, Mainpage.xaml Frame1)로 이동해야합니다. – Murali