WPF में, x: नाम और नाम विशेषताओं के बीच अंतर क्या हैं?


573

शीर्षक ही सब कुछ कह देता है। कभी-कभी ऐसा लगता है कि Nameऔर x:Nameविशेषताएँ विनिमेय हैं।

तो, उनके बीच निश्चित अंतर क्या हैं, और जब एक दूसरे पर उपयोग करना बेहतर होता है?

क्या उन्हें गलत तरीके से इस्तेमाल करने के लिए कोई प्रदर्शन या मेमोरी निहितार्थ है?


प्रतिक्रियाओं का सुझाव है कि x:Nameहर समय का उपयोग करना ठीक काम करता है। मुझे बस इसे बदलना पड़ा है Nameअन्यथा मैं अपने .xaml.cs कोड में नियंत्रण को संदर्भित नहीं कर सकता था, इसलिए मैं यह मानने जा रहा हूं कि अब ऐसा नहीं है कि यह हर समय ठीक काम करता है।
ओरतुंड

1
आपके रोलबैक के बारे में, "शीर्षक यह सब कहता है" वाक्यांश द्वारा अतिरिक्त अर्थ लगाया जाता है, ड्रू? क्या यह बेमानी नहीं है? (संपादन का मेरा कारण यह है कि मैं संवादी भराव वाक्यांशों को हतोत्साहित करता हूं - यह "मुझे आश्चर्य है कि अगर आप मेरी मदद कर सकते हैं" की तुलना में कोई अधिक जानकारीपूर्ण नहीं है)।
रोकें

जवाबों:


481

वास्तव में, XAML में केवल एक ही नाम है x:Name। एक फ्रेमवर्क, जैसे कि WPF, वैकल्पिक रूप से अपनी एक प्रॉपर्टी को XAML में मैप कर सकता है उस क्लास x:Nameका उपयोग करके जो RuntimeNamePropertyAttributeकिसी एक प्रॉपर्टी को एक्सप्रैस पर मैपिंग करते हुए एक्सएएमएल की नाम विशेषता बताती है।

इसका कारण यह था कि फ्रेमवर्क की अनुमति देने के लिए जो पहले से ही रनटाइम पर "नाम" की अवधारणा है, जैसे कि डब्ल्यूपीएफ। उदाहरण के लिए, WPF में, FrameworkElementएक नाम गुण का परिचय देता है।

सामान्य तौर पर, एक वर्ग को प्रयोग x:Nameकरने योग्य होने के लिए नाम को स्टोर करने की आवश्यकता नहीं होती है । x:NameXAML के लिए सभी साधन वर्ग के पीछे कोड में मूल्य को स्टोर करने के लिए एक क्षेत्र उत्पन्न करते हैं। उस मैपिंग के साथ रनटाइम क्या करता है यह फ्रेमवर्क पर निर्भर है।

तो, एक ही काम करने के दो तरीके क्यों हैं? इसका सरल उत्तर यह है कि एक संपत्ति पर दो अवधारणाएँ मैप की गई हैं। WPF रनटाइम में संरक्षित एक तत्व का नाम चाहता है (जो अन्य बातों के अलावा, बिंद के माध्यम से उपयोग करने योग्य है) और XAML को यह जानना होगा कि आप कक्षा के पीछे कोड में फ़ील्ड द्वारा कौन से तत्व एक्सेस करना चाहते हैं। WPF इन दोनों को एक साथ x: नाम के उपनाम के रूप में नाम की संपत्ति चिह्नित करके जोड़ता है।

भविष्य में, एक्सएएमएल में एक्स के लिए अधिक उपयोग होंगे: नाम, जैसे कि आप अन्य वस्तुओं को नाम से संदर्भित करके गुण सेट करने की अनुमति देते हैं, लेकिन 3.5 और पूर्व में, इसका उपयोग केवल फ़ील्ड बनाने के लिए किया जाता है।

चाहे आपको एक या दूसरे का उपयोग करना चाहिए, वास्तव में एक शैली का प्रश्न है, तकनीकी नहीं। मैं अनुशंसा के लिए दूसरों को छोड़ दूंगा।

ऑटोमेशनप्रोपरेटी भी देखें। नाम वीएस एक्स: नाम , आटोमेशनप्रोपरेटी.नाम का उपयोग एक्सेसिबिलिटी टूल्स और कुछ टेस्टिंग टूल्स द्वारा किया जाता है।


2
Visual Studio 2010 में नाम गुण सेट किया गया है (x नहीं: नाम) जब आप डिज़ाइनर के माध्यम से XAML संपादित करते हैं। ऐसा प्रतीत होता है जैसे कि एमएस एक्स पर नाम के उपयोग को प्रोत्साहित करता है: नाम इसलिए मुझे लगता है कि यह डिफैक्टो मानक है।
नेबुला

11
मुझे नहीं लगता कि दोनों सामान्य रूप से विनिमेय हैं। नामकरण उपयोगकर्ता नियंत्रण की आवश्यकता होती है x:Nameक्योंकि Nameकोड-पीछे में पहचाने जाने के लिए कोई फ़ील्ड नहीं बनाया जाएगा। मुझे अभी भी नहीं पता कि ऐसा क्यों होता है।
लिबोर

5
वे नहीं हैं और न ही मेरा मतलब है कि उन्होंने ऐसा किया। WPF में, यदि किसी तत्व के पास एक Nameसंपत्ति है तो उसका मतलब वही है। यदि तत्व में कोई Nameगुण नहीं है , तो आपको उपयोग करना चाहिए x:Name
चक

90

ये एक ही चीज नहीं हैं।

x:Nameएक xaml अवधारणा है, जिसका उपयोग मुख्य रूप से संदर्भ तत्वों के लिए किया जाता है। जब आप किसी तत्व को x देते हैं: नाम xaml विशेषता, "निर्दिष्ट x:Nameएक फ़ील्ड का नाम बन जाता है जिसे xaml संसाधित होने पर अंतर्निहित कोड में बनाया जाता है, और यह फ़ील्ड ऑब्जेक्ट के लिए एक संदर्भ रखती है।" ( MSDN ) तो, यह एक डिज़ाइनर-जनरेटेड फ़ील्ड है, जिसकी डिफ़ॉल्ट रूप से आंतरिक पहुँच है।

Nameमौजूदा स्ट्रिंग संपत्ति है FrameworkElement, जिसे xaml विशेषता के रूप में किसी भी अन्य wpf तत्व संपत्ति के रूप में सूचीबद्ध किया गया है।

परिणामस्वरूप, इसका मतलब x:Nameवस्तुओं की एक विस्तृत श्रृंखला पर भी इस्तेमाल किया जा सकता है। यह xaml में किसी भी चीज को किसी दिए गए नाम से संदर्भित करने में सक्षम करने की तकनीक है।


6
तो क्यों या तो नाम या x: नाम का उपयोग Binding.ElementName के साथ किया जा सकता है? ऐसा लगता है कि x: नाम विशेषता का उपयोग न केवल उत्पन्न कोड में एक क्षेत्र का नाम करने के लिए किया जाता है, बल्कि यह रनटाइम में मेटाडेटा में भी उपलब्ध है।
ड्रू नॉक्स

यह WinForms संपादक के डिज़ाइन गुणों में फ़ील्ड नाम की तरह एक उत्पन्न फ़ील्ड है। वहां आप संपत्ति की सूची में एक नाम रखते हैं और यह एक क्षेत्र का नाम बन जाता है। यह वही व्यवहार है। बेशक यह रनटाइम पर उपलब्ध है क्योंकि यह एक आंतरिक क्षेत्र है जिसे कोड में संकलित किया गया है। Binding.ElementName किसी भी मामले के लिए जाँच करता है, कि xaml संपादक "जादू" है, x: नाम अपने आप में जादुई नहीं है।
केनन ईके

39

x: नाम और नाम विभिन्न नामस्थानों को संदर्भित कर रहे हैं।

x: नाम Xaml फ़ाइल के शीर्ष पर डिफ़ॉल्ट रूप से परिभाषित x नाम स्थान का संदर्भ है।

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

केवल नाम नाम डिफ़ॉल्ट नाम नीचे का उपयोग करता है।

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

x: नाम कह रहा है कि नाम का उपयोग करें जिसमें x उपनाम है। x डिफ़ॉल्ट है और अधिकांश लोग इसे छोड़ देते हैं लेकिन आप इसे अपनी पसंद के अनुसार बदल सकते हैं

xmlns:foo="http://schemas.microsoft.com/winfx/2006/xaml"

इसलिए आपका संदर्भ foo होगा : नाम

WPF में Namespaces को Define और Use करें


ओके इसे एक अलग तरीके से देखने देता है। कहते हैं कि आप अपने Xaml पृष्ठ पर एक बटन खींचें और छोड़ें। आप इस 2 तरीके x को संदर्भित कर सकते हैं : नाम और नाम । सभी xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" और xmlns: x = "http://schemas.microsoft.com/winfx/2006/xaml" कर रहे हैं कई नामस्थान के लिए संदर्भ है । के बाद से XAML रखती नियंत्रण नाम स्थान (उस पर नहीं 100%) और प्रस्तुति रखती FrameworkElement और बटन वर्ग के वंशानुक्रम स्वरूप दिया गया है:

Button : ButtonBase
ButtonBase : ContentControl, ICommandSource
ContentControl : Control, IAddChild
Control : FrameworkElement
FrameworkElement : UIElement, IFrameworkInputElement, 
                    IInputElement, ISupportInitialize, IHaveResources

इसलिए जैसा कि कुछ भी उम्मीद करता है कि फ्रेमवर्क से विरासत में मिलने वाली सभी सार्वजनिक विशेषताओं तक पहुंच होगी। इसलिए बटन के मामले में यह फ्रेमवर्क से इसका नाम विशेषता प्राप्त कर रहा है, पदानुक्रम पेड़ के शीर्ष पर। तो आप x: नाम या नाम कह सकते हैं और वे दोनों फ्रेमवर्क से गेटटर / सेटर तक पहुंच सकेंगे।

MSDN संदर्भ

WPF एक CLR विशेषता को परिभाषित करता है जो कि XAML प्रोसेसर द्वारा एक ही XML नामस्थान में कई CLR नामस्थानों को मैप करने के लिए खपाया जाता है। XmlnsDefinitionAttribute विशेषता स्रोत कोड है कि विधानसभा का उत्पादन में विधानसभा स्तर पर रखा गया है। WPF असेंबली सोर्स कोड इस विशेषता का उपयोग विभिन्न सामान्य नामस्थानों जैसे कि System.Windows और System.Windows.Controls पर, http://schemas.microsoft.com/winfx/2006/xaml/pretation नाम पर मैप करने के लिए करता है।

तो विधानसभा विशेषताएँ कुछ इस तरह दिखेंगी:

प्रस्तुतिफ़्रेमवर्क .ll - XmlnsDefinitionAttribute:

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows")]

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Data")]

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Navigation")]

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Shapes")]

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Documents")]

[assembly: XmlnsDefinition("http://schemas.microsoft.com/winfx/2006/xaml/presentation", "System.Windows.Controls")]  

1
मैं यह सच है कि है नहीं लगता कि http://schemas.microsoft.com/winfx/2006/xamlरखती है Control: जब से तुम एक 'एक्स' नाम स्थान के बिना XAML में सीधे उपयोग कर सकते हैं<Control />
ड्रयू Noakes

23

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

यदि वे चाहते हैं तो नियंत्रण खुद को एक निर्भरता संपत्ति के रूप में नाम उजागर कर सकते हैं (क्योंकि उन्हें आंतरिक रूप से उस निर्भरता संपत्ति का उपयोग करने की आवश्यकता है), या वे नहीं चुन सकते हैं।

Msdn में और अधिक विवरण यहाँ और यहाँ :

WPF फ्रेमवर्क-स्तर के कुछ एप्लिकेशन एक्स: नाम विशेषता के किसी भी उपयोग से बचने में सक्षम हो सकते हैं, क्योंकि नाम आधार की संपत्ति जैसे कि WPE नामस्थान के भीतर कई महत्वपूर्ण आधार वर्गों के लिए निर्दिष्ट किया गया है जैसे कि FrameworkElement / FrameworkContentElement इसी उद्देश्य को पूरा करता है। अभी भी कुछ सामान्य एक्सएएमएल और फ्रेमवर्क परिदृश्य हैं जहां बिना नाम संपत्ति वाले तत्व तक कोड पहुंच आवश्यक है, विशेष रूप से कुछ एनीमेशन और स्टोरीबोर्ड समर्थन वर्गों में। उदाहरण के लिए, आपको x निर्दिष्ट करना चाहिए: XAML में बनाई गई समय-सीमा और परिवर्तनों पर नाम, यदि आप उन्हें कोड से संदर्भित करना चाहते हैं।

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


4
अगर कोई अंतर नहीं है, तो एक ही काम करने के दो तरीके क्यों होंगे? WPF की पहली रिलीज़ में दोनों तरीके मौजूद थे।
ड्रू नॉक

@ सच कहूं, मैंने इस सवाल का कोई जवाब नहीं दिया, हालांकि उनमें से कोई भी अब तक बहुत उपयुक्त नहीं है।
ड्रू नोक

मैं यह नहीं देखता कि एक उत्तर जो न केवल आपको उत्तर देता है, बल्कि आपको विषय के बारे में अधिक जानकारी के लिए MSDN के लिंक भी देता है, उचित नहीं है? :-)
स्टीवन रॉबिंस

5
@ अपने मूल उत्तर के साथ मेरे प्रश्न का उत्तर न दें, इसलिए मेरी टिप्पणी। मैं अंध-विश्वास की तलाश नहीं कर रहा हूं "यह इस तरह से करें", बल्कि एक असंवेदनशील जवाब है जिसमें बताया गया है कि दो तरीके क्यों मौजूद हैं, भले ही उनमें से एक हर समय काम करता हो। तकनीकी रूप से सही! = उपयुक्त। आपका अपडेट बहुत बेहतर है।
ड्रू नोक

1
यहाँ एक ही उत्तर: wpfwiki.com/WPF%20Q16.4.ashx x: नाम नियंत्रण को कोड-पीछे उपयोग करने के लिए एक नाम दे रहा है। कुछ कक्षाएं समान उद्देश्य के लिए नाम-संपत्ति प्रदान करेंगी। इन वर्गों के लिए, x: नाम और नाम के बीच कोई अंतर नहीं है।
23

11

X: यदि आपके पास कस्टम नियंत्रण है तो नाम स्मृति समस्याओं का कारण बन सकता है। यह NameSope प्रविष्टि के लिए मेमोरी लोकेशन रखेगा।

मैं कहता हूं कि कभी भी x का उपयोग न करें: नाम जब तक आपके पास नहीं है।


माना। एक कियोस्क ऐप पर काम किया गया था जिसमें कई मेमोरी लीक थे और पूर्व देव टीम का संकल्प सिर्फ एक रिबूट को मजबूर करने के लिए था। बहुत से लीक आसानी से पहचाने जाते थे। फिर भी, इंटेलीट्रेस और जस्टट्रेस के माध्यम से मिलने वालों को ठीक करने के बाद, कुछ रेफल्स अभी भी निहित और स्पष्ट कचरा संग्रह को हटा दिया है। मैंने पढ़ा: support.scichart.com/index.php?/News/NewsItem/View/21/… पाया कि x को कम करना: नाम में और बेहतर प्रदर्शन।
मैकिनक्स एक्स

2
यह मेरी समझ है कि यह नाम और x दोनों को प्रभावित करता है : नाम के रूप में दोनों NameScope में जोड़े जाते हैं। यदि आपको अपने तत्व पर नाम की आवश्यकता है, तो इसके आसपास कोई नहीं है। आप एक ऐसे तत्व पर कोड में रिप्रोड कर सकते हैं जिसका कोई नाम नहीं है । हालांकि, अगर आप कहते हैं कि यह "डीरेफेरेंस" हो सकता है। FrameworkElement.RegisterName("elementname")FrameworkElement.UnregisterName("elementname")
एडम कैविनेस

8

नाम :

  1. केवल फ्रेमवर्क और फ्रेमवर्क के वंशज के लिए इस्तेमाल किया जा सकता है;
  2. SetValue () और प्रॉपर्टी जैसे कोड के माध्यम से कोड-पीछे से सेट किया जा सकता है।

x: नाम :

  1. लगभग सभी एक्सएएमएल तत्वों के लिए इस्तेमाल किया जा सकता है;
  2. SetValue () के माध्यम से कोड-पीछे से सेट नहीं किया जा सकता है; इसे केवल ऑब्जेक्ट पर विशेषता सिंटैक्स का उपयोग करके सेट किया जा सकता है क्योंकि यह एक निर्देश है।

XAML में दोनों निर्देशों का उपयोग करने के लिए एक FrameworkElement या FrameworkContentElement एक अपवाद का कारण होगा: यदि XAML को मार्कअप संकलित किया जाता है, तो अपवाद मार्कअप कंपाइल पर होगा, अन्यथा यह लोड पर होता है।


7

अंतर केवल इतना है कि यदि आप एक ही असेंबली से नियंत्रण में उपयोगकर्ता नियंत्रण का उपयोग कर रहे हैं तो नाम आपके नियंत्रण की पहचान नहीं करेगा और आपको एक ही असेंबली में "एक्स का उपयोग करें: नियंत्रण के लिए नाम" का एक त्रुटि मिलेगा। तो x: नाम WPF में नामकरण नियंत्रणों का WPF संस्करण है। नाम का उपयोग केवल एक Winform Legacy के रूप में किया जाता है। वे WPF और winforms में नियंत्रण के नामकरण को अलग करना चाहते थे क्योंकि वे Xaml में विशेषताओं का उपयोग अन्य असेंबली से नियंत्रण की पहचान करने के लिए करते थे जो उन्होंने x का उपयोग किया था: नियंत्रण के नाम के लिए।

बस ध्यान रखें कि नियंत्रण के लिए नाम न रखें केवल इसे रखने के लिए क्योंकि यह एक रिक्त के रूप में स्मृति में रहता है और यह आपको एक चेतावनी देगा कि नाम एक नियंत्रण के लिए लागू किया गया है लेकिन इसका उपयोग कभी नहीं किया गया।


7

x:Name का अर्थ है: इस ऑब्जेक्ट का संदर्भ रखने के लिए कोड के पीछे एक फ़ील्ड बनाएं।

Name का अर्थ है: इस ऑब्जेक्ट की नाम संपत्ति सेट करें।


यह बिल्कुल सच नहीं है; वे दोनों कोडबेहिंद से सुलभ हैं, लेकिन दिलचस्प रूप से केवल x: नाम को रनटाइम पर अपडेट किया जा सकता है। नटी।

4

मैं हमेशा x: नाम संस्करण का उपयोग करता हूं। मुझे नहीं पता कि यह किसी भी प्रदर्शन को प्रभावित करता है या नहीं, मुझे निम्नलिखित कारणों से यह आसान लगता है। यदि आपके पास अपने स्वयं के usercontrols हैं जो किसी अन्य असेंबली में निवास करते हैं तो बस "नाम" संपत्ति हमेशा पर्याप्त नहीं होगी। इससे सिर्फ x: नाम की संपत्ति को चिपकाना आसान हो जाता है।


4
अगर कोई अंतर नहीं है, तो एक ही काम करने के दो तरीके क्यों होंगे? WPF की पहली रिलीज़ में दोनों तरीके मौजूद थे।
ड्रू नॉक

3

यह WPF आइटम नहीं है, लेकिन एक मानक XML एक और BtBh ने इसका सही उत्तर दिया है, x डिफ़ॉल्ट नामस्थान को संदर्भित करता है। XML में जब आप किसी तत्व / विशेषता को किसी नामस्थान के साथ उपसर्ग नहीं करते हैं तो यह मान लेता है कि आप डिफ़ॉल्ट नाम स्थान चाहते हैं। इसलिए टाइपिंग सिर्फ Nameएक छोटे से हाथ के लिए और कुछ नहीं है x:Name। XML नामस्थान पर अधिक विवरण लिंक पाठ में पाए जा सकते हैं


-1 x पर ले जाया गया: एक अलग XML नामस्थान को संदर्भित करता है, सच है, लेकिन यह वास्तव में क्यू के लिए एक उपयोगी उत्तर नहीं है जो तब होता है जब आपको ओटी की आवश्यकता होती है एक दूसरे का उपयोग न करें। : /
टिम लोवेल-स्मिथ

2

उत्तरों में से एक यह है कि x: नाम का उपयोग विभिन्न प्रोग्राम भाषाओं जैसे c # के अंदर किया जाना है और नाम का उपयोग फ्रेमवर्क के लिए किया जाना है। ईमानदारी से कहूं तो यह मेरे लिए अच्छा लगता है।


2

निर्दिष्ट x: नाम उस फ़ील्ड का नाम बन जाता है जिसे XAML संसाधित होने पर अंतर्निहित कोड में बनाया जाता है, और वह फ़ील्ड ऑब्जेक्ट का संदर्भ रखती है। सिल्वरलाइट में, प्रबंधित एपीआई का उपयोग करके, इस क्षेत्र को बनाने की प्रक्रिया MSBuild लक्ष्य चरणों द्वारा की जाती है, जो XAML फ़ाइल और इसके कोड-पीछे के लिए आंशिक कक्षाओं में शामिल होने के लिए भी जिम्मेदार हैं। यह व्यवहार जरूरी XAML- भाषा निर्दिष्ट नहीं है; यह विशेष कार्यान्वयन है कि Silverlight x का उपयोग करने के लिए लागू होता है : इसकी प्रोग्रामिंग और एप्लिकेशन मॉडल में नाम

आगे पढ़िए MSDN पर ...


2

जब आप XAML में एक बटन एलिमेंट घोषित करते हैं तो आप एक रन क्लास में संदर्भित होते हैं, जिसे विंडोज़ टाइम टाइम बटन कहा जाता है।

बटन में कई विशेषताएं हैं जैसे कि पृष्ठभूमि, पाठ, मार्जिन, ..... और एक विशेषता जिसका नाम है।

अब जब आप XAML में एक बटन की घोषणा करते हैं, तो एक अनाम ऑब्जेक्ट बनाने के लिए होता है, जिसका नाम नाम की एक विशेषता है।

सामान्य तौर पर आप एक अनाम वस्तु का संदर्भ नहीं दे सकते हैं, लेकिन WPF ढांचे में XAML प्रोसेसर आपको उस वस्तु को संदर्भित करने में सक्षम बनाता है, जिसे आपने नाम विशेषता के लिए दिया है।

अब तक सब ठीक है।

ऑब्जेक्ट बनाने का दूसरा तरीका अनाम ऑब्जेक्ट के बजाय नामित ऑब्जेक्ट बनाना है। इस मामले में XAML नाम स्थान में नाम नामक एक वस्तु के लिए एक विशेषता है (और चूंकि यह XAML नाम स्थान में है, इस प्रकार X :) है कि आप सेट कर सकते हैं ताकि आप अपनी वस्तु को पहचान सकें और इसे संदर्भित कर सकें।

निष्कर्ष:

नाम एक विशिष्ट वस्तु का एक गुण है, लेकिन X: नाम उस वस्तु की एक विशेषता है (एक वर्ग है जो एक सामान्य वस्तु को परिभाषित करता है)।


0

मेरे शोध है x:Nameके रूप में वैश्विक चर। हालाँकि, स्थानीय चर के Nameरूप में । क्या इसका मतलब x है: नाम आप इसे अपनी XAML फ़ाइल में कहीं भी कॉल कर सकते हैं लेकिन नाम नहीं है। उदाहरण:

<StackPanel>
<TextBlock Text="{Binding Path=Content, ElementName=btn}" />
<Button Content="Example" Name="btn" />
</StackPanel>
<TextBlock Text="{Binding Path=Content, ElementName=btn}" />

आप नाम के साथ Bindingगुण नहीं कर सकते क्योंकि यह बाहर है "बीटीएन"ContentButtonStackPanel

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.