xaml - बाध्यकारी और एक्स के बीच अंतर:बाइंड




data-binding win-universal-app uwp (3)

{x:Bind} विशेष उद्देश्य कोड निष्पादित करता है, जो इसे संकलित समय पर उत्पन्न करता है। {Binding} सामान्य उद्देश्य रनटाइम ऑब्जेक्ट निरीक्षण का उपयोग करता है। नतीजतन, {x:Bind} का शानदार प्रदर्शन है और आपके बाध्यकारी अभिव्यक्तियों का संकलन-समय सत्यापन प्रदान करता है। यह आपको अपने पृष्ठ के आंशिक वर्ग के रूप में जेनरेट की गई कोड फ़ाइलों में ब्रेकपॉइंट्स सेट करने में सक्षम करके डीबगिंग का समर्थन करता है।

चूंकि {x:Bind} इसके लाभ प्राप्त करने के लिए जेनरेट कोड का उपयोग करता है, इसलिए इसे संकलित समय पर प्रकार की जानकारी की आवश्यकता होती है। इसका मतलब यह है कि आप उन संपत्तियों से बंध नहीं सकते जहां आप समय से पहले नहीं जानते हैं। इस वजह से, आप {x:Bind} उपयोग डेटाकॉन्टेक्स्ट प्रॉपर्टी के साथ नहीं कर सकते जो ऑब्जेक्ट प्रकार का है, और रन टाइम पर भी बदलाव के अधीन है। {x:Bind} मार्कअप एक्सटेंशन-विंडोज 10 के लिए {Binding} विकल्प है। {x:Bind} में {Binding} की कुछ विशेषताओं की कमी है, लेकिन यह {Binding} तुलना में कम समय और कम स्मृति में चलता है और बेहतर डिबगिंग का समर्थन करता है।

यूडब्ल्यूपी, Binding या x:Bind में क्या उपयोग करें x:Bind और उनके बीच क्या अंतर है?

क्योंकि मैं बहुत सी पोस्ट देखता हूं जहां लोग Binding उपयोग करते हैं और मैं केवल x:Bind साथ बांधता हूं x:Bind यूडब्ल्यूपी में बांधें।

एमएसडीएन होमपेज पर यह केवल इतना कहता है कि " {x:Bind} और {Binding} द्वारा बनाई गई बाध्यकारी वस्तुएं काफी हद तक कार्यात्मक रूप से समकक्ष हैं।" और वह x:Bind तेज है

लेकिन उनके बीच क्या अंतर है?

क्योंकि "काफी हद तक कार्यात्मक रूप से समतुल्य" का अर्थ बराबर नहीं है।

मेरे उद्धरण से लिंक: MSDN

तो मेरा सवाल है:

बाध्यकारी या एक्स का उपयोग करने में क्या अंतर है: यूडब्ल्यूपी में बांधें?


निम्नलिखित संभवतः पूरा नहीं हुआ है, लेकिन कुछ प्रमुख अंतर हैं

  • पुरानी शैली {Binding }

    • DataContext से बांधता है
    • वास्तविक स्रोत प्रकार के बारे में लचीला, संपत्ति नाम से बंधे हैं


  • नई शैली {x:Bind }
    • फ्रेमवर्क तत्व से जुड़ा हुआ है (कोड-बैक क्लास)
    • संकलन समय पर तय सभी प्रकार की जरूरत है
    • अधिक मितव्ययी वनटाइम मोड के लिए डिफ़ॉल्ट

और 14393 के निर्माण के साथ शुरू , {x:Bind } का समर्थन करता है:

  • वैल्यू कनवर्टर के बिना प्रत्यक्ष बूलियन टॉवइबिलिटी बाध्यकारी
  • विस्तारित समारोह बाध्यकारी
  • ढलाई
  • शब्दकोश सूचकांक

नया {x: बाइंड} रनटाइम पर थोड़ा तेज़ है, लेकिन उतना ही महत्वपूर्ण है कि यह गलत बाइंडिंग के लिए कंपाइलर त्रुटियों को देगा। {बाध्यकारी} के साथ आप ज्यादातर मामलों में एक खाली नियंत्रण देखेंगे।


कहीं भी वैश्विक संसाधन शब्दकोश में आप एक कुंजी के साथ आधार शैली परिभाषित करते हैं। यह आधार शैली एक प्रकार के लिए लक्षित है जो कि सभी प्रकार के लिए आधार है जिसके लिए आप उस शैली को लागू करना चाहते हैं। फिर आप शैलियों को परिभाषित करते हैं जो आपके इच्छित प्रकारों को लक्षित करते हैं और उपर्युक्त आधार शैली पर आधारित होते हैं।

<Style
    x:Key="upDownBaseStyle"
    TargetType="{x:Type Control}">
    <Setter
      Property="Margin"
      Value="2" />
    <Setter
      Property="HorizontalAlignment"
      Value="Stretch" />
    <Setter
      Property="VerticalAlignment"
      Value="Center" />
  </Style>

  <Style
    TargetType="{x:Type xceed:IntegerUpDown}"
    BasedOn="{StaticResource upDownBaseStyle}">
  </Style>

  <Style
    TargetType="{x:Type xceed:DoubleUpDown}"
    BasedOn="{StaticResource upDownBaseStyle}">
  </Style>

अब दो अंतिम शैलियों को किसी भी कुंजी के किसी भी उल्लेख के बिना आपके एप्लिकेशन के भीतर सभी इंटीग्रुपडाउन और डबलअपडाउन नियंत्रणों पर लागू किया जाता है।

तो आधार नियम: मूल शैली में इसका उल्लेख करने की कुंजी होनी चाहिए, और व्युत्पन्न शैलियों को नहीं किया जा सकता है और इसलिए उन्हें बिना किसी कुंजी के लागू किया जा सकता है - केवल लक्ष्य प्रकारों द्वारा।







xaml data-binding win-universal-app uwp