我有ListBox
且绑定了静态ObservableCollection<HUDInfo>
。 DataTrigger
在“我的窗口类”类型的数据上下文中显示以下错误“PropertyPath |无法解析属性'StatusConnection'。”
<ListBox
x:Name="ListBoxAvailableHuDs"
ItemsSource="{Binding AvailableHUDs, Source={x:Static Core:HudModel.Current}}"
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Style.Triggers>
<DataTrigger Binding="{Binding StatusConnection}" Value="CanDisconnect">
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
在Window
我设置了以下DataContext
:
DataContext="{Binding RelativeSource={RelativeSource Self}}"
我的TextBlock
也无法解析DataContext
<TextBlock
Text="{Binding SelectedItem.DeviceId, ElementName=ListBoxAvailableHuDs}"/>
“无法在'object'类型的数据上下文中解析属性'DeviceId'”
如何将DataContext
的{{1}}设置为ListBox
或HudInfo
使用右ListBoxItem
?
答案 0 :(得分:1)
在运行时,为每个列表框项正确解析数据上下文,但是,设计人员无法执行此操作。您可以执行以下操作:
<Style TargetType="ListBoxItem" d:DataContext="{d:DesignInstance HudInfo }">
<Style.Triggers>
...
</Style.Triggers>
</Style TargetType="ListBoxItem" d:DataContext="{d:DesignInstance HudInfo">
带
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
我发现这可能导致设计器中显示错误 - 强调d:DataContext部分,但它至少允许它解析绑定。