我正在学习WPF几周,但现在我遇到了一个我尚未解决的问题。我正在使用我的电话线,当新的呼叫进入时,我将数据库中的整数设置为“1”。当Line处于活动状态时,我将其设置为“2”......当Line打开时,Integer为“0”。在我的WPF应用程序中,我得到了一个像小绿色LED的小图像。当呼叫进入/线路被阻止/激活时,它必须是例如红色LED。我读过很多关于DataTrigger和EventTrigger的文章,但我不知道这是否是正确的起点。
有人能给我一点暗示吗?
非常感谢!
答案 0 :(得分:0)
有几种方法可以实现这一目标。如果您正在使用MVVM(并且您可能应该使用),那么您可以在视图模型上使用字符串属性,该属性根据整数值返回相应的图像路径。然后,您可以将Image
控件的Source
值绑定到视图中视图模型的属性。
<Image Source="{Binding MyImagePathStringProperty}" Width="32" Height="32" />
或者,您可以将此整数属性公开给视图,并使用DataTrigger
根据此整数值设置图像源。
<Image>
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Source" Value="/Images/MyDefaultImage.png" />
<Style.Triggers>
<DataTrigger Binding="{Binding MyIntegerProperty}" Value="0">
<Setter Property="Source" Value="/Images/MyFirstImage.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding MyIntegerProperty}" Value="1">
<Setter Property="Source" Value="/Images/MySecondImage.png"/>
</DataTrigger>
<DataTrigger Binding="{Binding MyIntegerProperty}" Value="2">
<Setter Property="Source" Value="/Images/MyThirdImage.png"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>