我有一个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') 因此,如果我将绑定expression式更改为"Path=DataContext.CurrentItem.CurveSpeedMustBeSpecified"它将起作用,但只要父级用户控件的datacontext是BindingListCollectionView 。 这是不可接受的,因为用户控件的其余部分会自动绑定到BindingList上的CurrentItem属性。 如何在样式中指定绑定expression式,以便它可以工作,而不pipe父数据上下文是集合视图还是单个项目?
我如何使用WPF绑定RelativeSource和什么是不同的使用情况?