2010-07-15 3 views
0

uri로 탐색하는 방법을 설명하는 튜토리얼이 있습니까? 내 응용 프로그램이 내 프레임 "Login.xaml"과 그의 viewModel에로드되기 시작합니다. 내 버튼 "로그"(내가 relaycommand를 사용)를 클릭하면 내 프레임로드 "Acceuil.xaml"싶습니다.Mvvm 라이트 툴킷 및 프레임 단위로 탐색

어떻게 만드나요?

thx

답변

0

너무 열심히 노력하고 있습니다. 프레임 탐색은 매우 간단합니다. 'MyFrame'과 같은 프레임을 만든 다음 NavigateUri 값이 "/Acceuil.xaml"인 하이퍼 링크를 만들었습니다. 뷰 모델의 상태/세부 정보에서 링크를 표시하거나 숨기려면 뷰 모델에서 바인딩하고 업데이트하는 속성을 사용하십시오. 예를 들어. 이것은 당신이 시작하는 데 도움이

public class HideWhenNullConverter : IValueConverter 
{ 

    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     if (value == null) 
     { 
      return Visibility.Collapsed; 
     } 
     return Visibility.Visible; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

희망 : 당신은 null 값 또는 클래스의 결과 인 사용자 정보 속성에 기반/숨기기를 보여주기 위해 이와 같은 사용자 정보 속성, 다음 변환기 클래스를 사용할 수 있습니다. 또 다른 팁은 응용 프로그램에 논리를 추가하여 인증되지 않은 위치로 이동하려는 시도를 방지하는 것입니다. 예 :

 private void mainFrame_Navigating(object sender, System.Windows.Navigation.NavigatingCancelEventArgs e) 
    { 
     List<string> anonUrls = new List<string>(); 
     anonUrls.Add("/Welcome"); 
     anonUrls.Add("/Register"); 
     anonUrls.Add("/ValidateEmail"); 

     var myAnonUrl = (from u in anonUrls 
         where e.Uri.OriginalString.StartsWith(u) 
         select u).Count(); 

     if ((WebContext.Current.User == null || 
      WebContext.Current.User.IsAuthenticated == false) && 
      myAnonUrl == 0) 
     { 
      origUri = e.Uri; 
      e.Cancel = true; 
      mainFrame.Navigate(new Uri("/Welcome", UriKind.Relative)); 
     } 
    } 

이렇게하면 네비게이션 프레임을 조금 더 이해하는 데 도움이됩니다.

+0

답변 해 주셔서 감사합니다. – chris81

관련 문제