2015-02-26 12 views
7

का उपयोग कर किसी अन्य पृष्ठ पर नेविगेट करें मेरे पास कई सामग्री पृष्ठ हैं और मैं पृष्ठ में किसी तत्व के क्लिक पर एक से दूसरे पर नेविगेट करना चाहता हूं। मैं अपने ViewModel वर्ग है:Xamarin.Forms ViewModel

class JumpVM : INotifyPropertyChanged 
    { 
     public event PropertyChangedEventHandler PropertyChanged; 
     private INavigation _navigation; 

     public ICommand NewPage 
     { 
      get 
      { 
       return new Command(async() => 
       { 
        await _navigation.PushAsync(new MySettingsPage()); 
       }); 
      } 
     } 

     public JumpVM() { } 

     public JumpVM(INavigation navitation) 
     { 
      _navigation = navitation; 
     } 
    } 

और यह अपने पृष्ठों में से एक है (अंतरिक्ष के लिए, मैं केवल प्रासंगिक कोड डाल):

BindingContext = new JumpVM(this.Navigation); 

....

Image fbInvite = new Image 
      { 
       Source = ImageSource.FromResource(Constants.ASSETLOCATION + ".facebookInviteIcon.png"), 
       HorizontalOptions = LayoutOptions.Center 
      }; 
      fbInvite.GestureRecognizers.Add(new TapGestureRecognizer(sender => 
       { 
        //navigation in the method below 
        FaceboonInviteFriends(); 
        fbInvite.Opacity = 0.8; 
        fbInvite.FadeTo(1); 
       })); 

मैं चाहता हूं कि जब मैं छवि पर क्लिक करता हूं, तो JumpVM कक्षा में कमांड निष्पादित करने के लिए और वहां पृष्ठ पर नेविगेट करें। मैं उसे कैसे कर सकता हूँ?

उत्तर

1

FadeTo लाइन के बाद निम्न पंक्ति जोड़ने का प्रयास करें: ((JumpVM)BindingContext).NewPage.Execute(null)

+0

वास्तव में, यह उत्तर देता है। मैं अपने जवाब में सिर्फ एक छोटा संकेत जोड़ूंगा। –

+0

धन्यवाद :) इससे मदद मिली। मैं उत्तर के रूप में चिह्नित करने वाला हूं, लेकिन अगर आप इससे संबंधित किसी अन्य चीज़ के साथ मेरी मदद कर सकते हैं, तो अच्छा होगा। जैसा कि आप देख सकते हैं कि मैंने कड़ी मेहनत की है जहां यह कूद जाएगा "_avavigation.PushAsync (नया MySettingsPage());" । लेकिन अधिक लचीलापन के लिए, क्या मैं बटन पर क्लिक करके मैं एक निश्चित पृष्ठ डाल सकता हूं? – Dragos

+0

निश्चित रूप से, आप इच्छित पेज बना सकते हैं और इसे पैरामीटर के रूप में उपयोग कर सकते हैं। –

4

यह व्यूमोडेल अवधारणा में एक पृष्ठ को दूसरे पृष्ठ पर नेविगेट करने का उत्तर है।

public ICommand NavigationList { get; set; } 

NavigationList = new Command(GetListview); 

public void GetListview() 
{ 
    Xamarin.Forms.Application.Current.MainPage.Navigation.PushAsync(new ListViewPerson()); 
}