से अभिभावक डेटाकॉन्टेक्स्ट एक्सेस करें मेरे पास ListBox
है जो व्यूमोडेल पर बाल संग्रह से जुड़ा हुआ है।डेटा टेम्पलेट
<Style x:Key="curveSpeedNonConstantParameterCell">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=DataContext.CurveSpeedMustBeSpecified,
ElementName=someParentElementWithReferenceToRootDataContext}"
Value="True">
<Setter Property="Control.Visibility" Value="Hidden"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
मैं निम्नलिखित उत्पादन त्रुटि मिलती है: अगर मैं "Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"
के लिए बाध्य अभिव्यक्ति बदल
System.Windows.Data Error: 39 : BindingExpression path error:
'CurveSpeedMustBeSpecified' property not found on
'object' ''BindingListCollectionView' (HashCode=20467555)'.
BindingExpression:Path=DataContext.CurveSpeedMustBeSpecified;
DataItem='Grid' (Name='nonConstantCurveParametersGrid');
target element is 'TextBox' (Name='');
target property is 'NoTarget' (type 'Object')
तो यह काम करता है लिस्टबॉक्स आइटम माता पिता ViewModel पर एक संपत्ति के आधार पर एक DataTemplate में स्टाइल रहे हैं , लेकिन जब तक मूल उपयोगकर्ता नियंत्रण का डेटाकॉन्टेक्स्ट BindingListCollectionView
है। यह स्वीकार्य नहीं है क्योंकि शेष उपयोगकर्ता नियंत्रण BindingList
पर स्वचालित रूप से CurrentItem
के गुणों से जुड़ा हुआ है।
मैं शैली के अंदर बाध्यकारी अभिव्यक्ति कैसे निर्दिष्ट कर सकता हूं ताकि यह अभिभावक डेटा संदर्भ संग्रह संग्रह या एक आइटम होने पर ध्यान दिए बिना काम करता हो?
मेरे पास मेरे प्रोजेक्ट में यह सटीक कोड है लेकिन यह व्यूमोडल्स को लीक कर रहा है (फाइनलाइज़र नहीं कहा जाता है, कमांड बाध्यकारी डेटाकॉन्टेक्स्ट को बनाए रखने लगता है)। क्या आप यह सत्यापित कर सकते हैं कि यह समस्या आपके लिए भी मौजूद है? –
@ यह काम करता है, लेकिन क्या ऐसा करना संभव है ताकि यह सभी आइटम्स नियंत्रणों के लिए आग लगे जो समान टेम्पलेट को लागू करते हैं? नाम अद्वितीय है इसलिए हमें प्रत्येक के लिए एक अलग टेम्पलेट की आवश्यकता होगी, जब तक कि मुझे कुछ याद न हो। – Chris
@ जुवे ने मेरी आखिरी अवहेलना की, मुझे इसे रिश्तेदार संसाधन का उपयोग करके खोजकर्ता के साथ मिलकर काम करना पड़ा और पूर्वजों द्वारा खोजना, (इसलिए नाम से नहीं खोजना)। मेरे मामले में मैं आइटम्स कंट्रोल्स का उपयोग दोहराता हूं जो प्रत्येक टेम्पलेट को कार्यान्वित करता है, इसलिए मेरा ऐसा दिखता है: कमांड = "{बाध्यकारी सापेक्ष स्रोत = {सापेक्ष स्रोत ढूँढें पूर्वज, पूर्वजों टाइप = {x: टाइप आइटम नियंत्रण}}, पथ = डेटाकॉन्टेक्स्ट। ओपन डॉक्यूमेंट बीटीएन कॉमांड}" – Chris