XAML样式触发双值

时间:2013-02-19 11:04:00

标签: wpf xaml triggers styles

我想根据数据源中的双字段显示特定图像。

此字段包含0.0到100.0之间的值,我有四张图像,范围从0到25,26-50,51-75和76-100。

如何在XAML中实现这一目标?

我目前的触发器:

<Style.Triggers>
  <Trigger Property="Suitability" Value="50">
     <Setter Property="Source" Value="image2.png" />
  </Trigger>
</Style.Triggers>

但是这不适用于范围值,仅适用于静态值。

2 个答案:

答案 0 :(得分:1)

你看看转换器......它基本上应该将double转换为字符串......在转换器逻辑中你还可以包括你的范围......或者调用其他业务逻辑......

以下是如何编写转换器及其用途。 http://msdn.microsoft.com/en-us/library/aa970913.aspx

希望这会有所帮助......

答案 1 :(得分:0)

你有视图模型吗?最简单的方法是向VM添加一个单独的枚举属性,该视图可以绑定到:

public SuitabilityLevel SuitabilityLevel
{
    get
    {
        if (this.Suitability < 25)
        {
            return SuitabilityLevel.Low;
        }

        ...
    }
}

然后在你的XAML中:

<Trigger Property="SuitabilityLevel" Value="Low">
    <Setter Property="Source" Value="image1.png" />
</Trigger>

没有视图模型?使用转换器。