16

バインディングが正しく、画像ファイルが適切な場所にあると仮定すると、トリガーが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>
4

1 に答える 1

46

次のことを試してください...

  • スタイルに TargetType="{x:Type Image}" を設定します
  • セッターのプロパティを Property="Source" に変更します

プロパティ パスが現在定義されている方法では、Image と呼ばれる Image のプロパティ (存在しない) を探し、その中で Source と呼ばれるものを探します。

さらに、上部の Image タグから Source 属性を削除します。これは、スタイルによって適用されるものをオーバーライドします。別の DataTrigger に移動するか、次のように通常のセッターに入れることができます。

<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>
于 2010-03-10T03:42:28.023 に答える