【问题标题】:wpf datatrigger on an image source图像源上的 wpf 数据触发器
【发布时间】:2010-03-10 03:39:44
【问题描述】:

假设绑定是正确的并且图像文件在它们应该在的位置,任何人都可以发现为什么当触发器评估为 true 时下面的 xaml 中的图像不会改变?

干杯,
浆果

<Image Source="..\..\Images\OK.png" Grid.Column="2" Stretch="None">
    <Image.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}" Value="True">
                    <Setter Property="Image.Source" Value="..\..\Images\Error.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>

【问题讨论】:

    标签: wpf datatrigger


    【解决方案1】:

    试试下面...

    • 在样式上设置 TargetType="{x:Type Image}"
    • 将 setter 的属性更改为 Property="Source"

    当前定义属性路径的方式是,它在 Image 上寻找一个名为 Image 的属性(它不存在),然后在名为 Source 的东西中寻找。

    此外,从顶部的 Image 标记中删除 Source 属性。这将覆盖样式应用的任何内容。您可以将它移动到另一个 DataTrigger,或者您可以像这样将它放在普通的 setter 中:

    <Image Grid.Column="2" Stretch="None">
        <Image.Style>
            <Style TargetType="{x:Type Image}">
                <Setter Property="Source" Value="..\..\Images\OK.png" />
                <Style.Triggers>
                    <DataTrigger Value="True" Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}">
                        <Setter Property="Source" Value="..\..\Images\Error.png"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>
    

    【讨论】:

    • suh-weet 到目前为止,这些东西对我来说都是字节大小的。谢谢!
    • 多个 Hi 5's...我不知道为什么这很难做到,但你的例子帮助我分配。
    猜你喜欢
    • 2016-03-12
    • 1970-01-01
    • 2021-12-20
    • 2012-12-04
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多