Xamarin.Forms
MessagingCenter
खोज…
परिचय
Xamarin.Forms में डिकोडिंग कोड को बढ़ावा देने के लिए एक अंतर्निहित मैसेजिंग तंत्र है। इस तरह, दृश्य मॉडल और अन्य घटकों को एक दूसरे को जानने की आवश्यकता नहीं है। वे एक सरल संदेश अनुबंध द्वारा संवाद कर सकते हैं।
MessagingCenter
का उपयोग करने के लिए मूल रूप से दो मुख्य तत्व हैं।
सदस्यता लें ; एक निश्चित हस्ताक्षर (अनुबंध) के साथ संदेशों के लिए सुनो और एक संदेश प्राप्त होने पर कोड निष्पादित करें। एक संदेश में कई ग्राहक हो सकते हैं।
भेजना ; ग्राहकों के लिए एक संदेश भेजने पर कार्रवाई करने के लिए।
सरल उदाहरण है
यहाँ हम Xamarin.Forms में MessagingCenter का उपयोग करने का एक सरल उदाहरण देखेंगे।
सबसे पहले, एक संदेश की सदस्यता लेने पर एक नजर डालते हैं। में FooMessaging
मॉडल हम संदेश से आ रही करने के लिए सदस्यता MainPage
। संदेश "हाय" होना चाहिए और जब हम इसे प्राप्त करते हैं, तो हम एक हैंडलर पंजीकृत करते हैं जो संपत्ति को Greeting
सेट करता है। अन्त में this
का मतलब है वर्तमान FooMessaging
उदाहरण इस संदेश के लिए पंजीकरण किया गया है।
public class FooMessaging
{
public string Greeting { get; set; }
public FooMessaging()
{
MessagingCenter.Subscribe<MainPage> (this, "Hi", (sender) => {
this.Greeting = "Hi there!";
});
}
}
इस कार्यक्षमता को ट्रिगर करने वाला एक संदेश भेजने के लिए, हमें एक पेज होना चाहिए जिसका नाम है MainPage
, और नीचे दिए गए कोड को लागू करें।
public class MainPage : Page
{
private void OnButtonClick(object sender, EventArgs args)
{
MessagingCenter.Send<MainPage> (this, "Hi");
}
}
हमारे MainPage
में हमारे पास एक हैंडलर के साथ एक बटन होता है जो एक संदेश भेजता है। this
MainPage
का एक उदाहरण होना चाहिए।
तर्क वितर्क करना
आप काम करने के लिए एक संदेश के साथ तर्क भी पारित कर सकते हैं।
हम अपने पिछले उदाहरण से वर्गीकृत का उपयोग करेंगे और उनका विस्तार करेंगे। प्राप्त करने वाले भाग में, Subscribe
विधि कॉल के ठीक पीछे उस तर्क का प्रकार जोड़ें, जिसकी आप अपेक्षा कर रहे हैं। यह भी सुनिश्चित करें कि आप हैंडलर हस्ताक्षर में तर्कों की घोषणा करते हैं।
public class FooMessaging
{
public string Greeting { get; set; }
public FooMessaging()
{
MessagingCenter.Subscribe<MainPage, string> (this, "Hi", (sender, arg) => {
this.Greeting = arg;
});
}
}
संदेश भेजते समय, तर्क मूल्य को शामिल करना सुनिश्चित करें। इसके अलावा, यहां आप Send
मेथड के ठीक पीछे टाइप करें और लॉजिक वैल्यू जोड़ें।
public class MainPage : Page
{
private void OnButtonClick(object sender, EventArgs args)
{
MessagingCenter.Send<MainPage, string> (this, "Hi", "Hi there!");
}
}
इस उदाहरण में एक साधारण स्ट्रिंग का उपयोग किया जाता है, लेकिन आप किसी अन्य प्रकार की (जटिल) वस्तुओं का भी उपयोग कर सकते हैं।
सदस्यता रद्द किए
जब आपको संदेश प्राप्त करने की आवश्यकता नहीं होती है, तो आप बस सदस्यता समाप्त कर सकते हैं। आप इसे इस तरह से कर सकते हैं:
MessagingCenter.Unsubscribe<MainPage> (this, "Hi");
जब आप तर्क की आपूर्ति कर रहे हों, तो आपको पूर्ण हस्ताक्षर से सदस्यता समाप्त करनी होगी, जैसे:
MessagingCenter.Unsubscribe<MainPage, string> (this, "Hi");