2009-12-15 14 views
64

मुझे एक WPF Window मिला है, और कहीं ListView है जहां मैं List<string> को बांधता हूं।WPF अपने आप को

अब कहीं मेरे ListView वहाँ एक TextBox है और Content संपत्ति {Binding} को तैयार है।

लेकिन यह शॉर्टेंड है। मैं खुद को बांधने के लिए पूर्ण बाध्यकारी कैसे लिखूं?

{Binding Path=Self} काम नहीं करता है, न तो {Binding Self} (जहां उत्तरार्द्ध पूर्व के लिए शॉर्टकट है)।

+0

मैं इस विषय से संबंधित एक पोस्ट का उल्लेख करना चाहता हूं। उपरोक्त उत्तर पूरी तरह से सही है लेकिन एक बिंदु है जो उपरोक्त उत्तर को पूरा करता है। यहां [लिंक] है (http://stackoverflow.com/questions/11995318/how-do-i-bind-to-relativesource-self)। – AAAA

उत्तर

202

लघु जवाब: {Binding}नहीं "खुद के लिए बाध्य" (RelativeSource.Self के अर्थ में) के लिए एक शॉर्टकट है। इसके बजाय, {Binding}is equivalent to{Binding Path=.}, जो वर्तमान स्रोत से जुड़ा हुआ है।


विस्तार करने के लिए: एक बाध्यकारी एक स्रोत और एक पथ है। आप

<myUIControl myProperty="{Binding RelativeSource={RelativeSource Self}, Path=x}" /> 

इस का उपयोग कर एक "खुद के लिए बाध्य" उदाहरण के लिए, कर सकते हैं, हालांकि, नियंत्रण ही स्रोत सेट, तो यह (बल्कि UI नियंत्रण की संपत्ति x का उपयोग करने की कोशिश करेंगे वर्तमान डेटा संदर्भ की संपत्ति x से)। मैं आपके प्रश्न को कैसे समझता हूं, यह वही नहीं है जो आप चाहते हैं; विशेष रूप से, यह {Binding} नहीं करता है: {Binding} स्रोत को रखता है (आमतौर पर DataContext कुछ मूल तत्व के) और स्रोत से ही जुड़ा होता है (Path=. के बराबर)।

+1

बहुत बहुत धन्यवाद! – Snake

+1

अच्छा जवाब, अगर मैं कर सकता तो मैं आपको +2 देता। –

+0

क्या एक अच्छा जवाब है! –

संबंधित मुद्दे