SelectedItem未知DataContext虽然设置了datacontext

时间:2017-01-16 10:54:54

标签: c# wpf xaml datacontext

我有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}}设置为ListBoxHudInfo使用右ListBoxItem

1 个答案:

答案 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部分,但它至少允许它解析绑定。