मेरे पास 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
।
मैं शैली के अंदर बाध्यकारी अभिव्यक्ति को कैसे निर्दिष्ट कर सकता हूं ताकि यह मूल डेटा संदर्भ के संग्रह दृश्य या एकल आइटम की परवाह किए बिना काम करे?