मेरे पास ListBoxएक ViewModel पर एक बच्चे के संग्रह को बांधता है। सूची बॉक्स आइटम को मूल संपत्ति पर आधारित डेटेटप्लेट में देखा जाता है। ViewModel:
<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>
मुझे निम्न आउटपुट त्रुटि मिलती है:
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')
इसलिए यदि मैं "Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"इसे करने के लिए बाइंडिंग एक्सप्रेशन को बदल देता हूं , लेकिन जब तक पैरेंट यूजर कंट्रोल का डेटाकॉन्टेक्ट एक है BindingListCollectionView। यह स्वीकार्य नहीं है क्योंकि बाकी उपयोगकर्ता नियंत्रण स्वचालित रूप से CurrentItemऑन के गुणों को बांधता है BindingList।
मैं शैली के अंदर बाध्यकारी अभिव्यक्ति को कैसे निर्दिष्ट कर सकता हूं ताकि यह मूल डेटा संदर्भ के संग्रह दृश्य या एकल आइटम की परवाह किए बिना काम करे?