আমার একটি 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>
আমি নিম্নলিখিত আউটপুট ত্রুটি পেয়েছি:
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"
এটি কাজ করে, কিন্তু শুধুমাত্র যতদিন পিতা বা মাতা ব্যবহারকারী নিয়ন্ত্রণের datacontext একটি হল BindingListCollectionView
। এই গ্রহণযোগ্য নয় কারণ বৈশিষ্ট্য ব্যবহারকারী নিয়ন্ত্রণ বেঁধে বাকি CurrentItem
উপর BindingList
স্বয়ংক্রিয়ভাবে।
আমি কীভাবে শৈলীর অভ্যন্তরে বাধ্যতামূলক এক্সপ্রেশনটি নির্দিষ্ট করতে পারি যাতে এটি পিতামাতার তথ্য প্রসঙ্গে কালেকশন ভিউ বা একক আইটেম নির্বিশেষে কাজ করে?