Bir var ListBox
bir ViewModel bir çocuk koleksiyonuna hangi bağlar. Liste kutusu öğeleri, ana ViewModel'deki bir özelliğe dayalı olarak bir veri şablonunda stilize edilir:
<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>
Aşağıdaki çıktı hatasını alıyorum:
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')
Dolayısıyla, bağlama ifadesini değiştirirsem "Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"
çalışır, ancak yalnızca ana kullanıcı denetiminin veri bağlamı bir BindingListCollectionView
. Bu, kabul edilebilir olmadığı için özelliklerine kullanıcı kontrol bağlar geri kalanı CurrentItem
ile BindingList
otomatik olarak.
Ana veri bağlamının bir koleksiyon görünümü veya tek bir öğe olmasına bakılmaksızın çalışması için stilin içindeki bağlama ifadesini nasıl belirtebilirim?