我有一个带有自定义布局的ListBox,用于在Grid中设置的项目。我已将样式设置为网格中的静态资源,以定义文本块的前景色,但它未绑定到我的视图模型。如果我将该值指定为标准颜色,则效果很好。而且所有数据都正确绑定,我丢失了什么?
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch" >
<Grid.Resources>
<Style TargetType="TextBlock" x:Key="HeaderForeground">
<Setter Property="Foreground" Value="{Binding Path=ScreenConfig.TimeColor,Mode=OneWay, NotifyOnTargetUpdated=True}" />
</Style>
</Grid.Resources>
<TextBlock Text="{Binding Path=Time}" Style="{StaticResource HeaderForeground}" />
答案 0 :(得分:0)
如果ScreenConfig
是视图模型的属性,则可以使用RelativeSource
绑定到它:
<Style TargetType="TextBlock" x:Key="HeaderForeground">
<Setter Property="Foreground"
Value="{Binding Path=DataContext.ScreenConfig.TimeColor, RelativeSource={RelativeSource AncestorType=ListBox}}" />
</Style>
DataContext
中某个项目的ListBox
是ListBox
的{{1}}中的当前项目,这就是绑定不起作用的原因。