मेरे WPF प्रोजेक्ट में हैं, मेरे पास एक सूची बॉक्स है जो List<string>
संग्रह से आइटम प्रदर्शित करता है। मैं इन वस्तुओं का पाठ संपादन योग्य बनाना चाहता था, इसलिए मैंने उनमें से प्रत्येक को टेक्स्टबॉक्स के साथ आइटम टेम्पलेट में लपेट लिया (शायद सबसे अच्छा तरीका नहीं है, लेकिन मैं WPF के लिए नया हूं)। मुझे टेक्स्टबॉक्स की टेक्स्ट प्रॉपर्टी को प्रत्येक आइटम के मूल्य पर बाध्य करने में परेशानी हो रही थी।"{बाइंडिंग पथ =।}" और "{बाइंडिंग}" वास्तव में
<ListBox ItemsSource="{Binding ElementName=recipesListbox,Path=SelectedItem.Steps}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding Path=.}"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
क्यों बस {Binding}
का उपयोग कर फिर भी मुझे समझ नहीं आता काम नहीं किया: मैं अंत में अपने पथ संपत्ति ({Binding Path=.}
) के लिए एक एकल बिंदु पर अथवा अवधि का उपयोग कर एक उदाहरण पर ठोकर खाई।
यह उठाया एक अपवाद है, according to Microsoft के रूप में "दो-तरफा बाध्यकारी पथ या XPath की आवश्यकता है": (।)
[...] अवधि पथ इस्तेमाल किया जा सकता वर्तमान करने के लिए बाध्य करने के लिए स्रोत। उदाहरण के लिए, पाठ के लिए = "{} बाइंडिंग" पाठ के बराबर है = "{बाइंडिंग पथ =।}"
कोई इस अस्पष्ट व्यवहार पर प्रकाश डाला सकता है?
संपादित करें: इसके अलावा, ऐसा लगता है {Binding Path=.}
जरूरी पाठ को संशोधित करने और अंतर्निहित स्रोत अपडेट नहीं करता फ़ोकस ले जाने के रूप में, दो तरह से बाध्यकारी नहीं देता है (एक ही स्रोत भी है गुण प्रदर्शित किया है और सफलतापूर्वक एक डेटा ग्रिड पर संशोधित नियंत्रण)। मैं निश्चित रूप से यहाँ कुछ याद कर रहा हूँ।
वह एक टाइपो था, यह अब तय है। – Fueled
लेकिन दो रास्ता बाध्यकारी अभी भी विफल रहता है। यह परिवर्तनों को बचाने से इंकार कर देता है। यदि आपके पास ObsColl है और पथ = करें। मोड = दोवे बाध्यकारी, संग्रह में जोड़ना ठीक काम करता है। उदाहरण के लिए इंडेक्स 0 पर संख्या बदलना। यदि आप इसे डेटाग्रिड बांधते हैं और डेटाग्रिडटेक्स्ट कॉलम निर्दिष्ट करते हैं, तो यह पथ = के साथ सहेजने से इंकार कर देता है। –
user99999991