参考:stackoverflow
问题背景
有如下代码,发现在 ImageSource="{Binding SomeImage}"
中没有绑定的当前的 DataContext文章来源:https://www.toymoban.com/news/detail-669873.html
<Grid>
<Border>
<Border.Style>
<Style TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding SomeValue, ElementName=myControl, Mode=OneWay}" Value="0">
<Setter Property="Background">
<Setter.Value>
<!-- 此处 Binding 没有生效 -->
<ImageBrush ImageSource="{Binding SomeImage}" />
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
</Border>
</Grid>
解决办法
改成如下即可文章来源地址https://www.toymoban.com/news/detail-669873.html
<Grid>
<Grid.Resource>
<ImageBrush x:key="myImage" ImageSource="{Binding SomeImage}" />
<Style x:key="myStyle" TargetType="Border">
<Style.Triggers>
<DataTrigger Binding="{Binding SomeValue, ElementName=myControl, Mode=OneWay}" Value="0">
<Setter Property="Background" Value="{StaticResource myImage}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Resource>
<Border Style="{StaticResource myStyle}"/>
</Grid>
到了这里,关于WPF 解决 Style.Trigger 中数据绑定失效的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!