Silverlight将bool绑定到imagesource

时间:2011-06-09 20:20:17

标签: silverlight

如何绑定bool以选择特定图像?例如。我有Image控件。我有一个名为IsTrue的绑定属性。

我有2张图片:

  1. TrueImg.png
  2. FalseImg.png
  3. 如何根据bool显示图像?

    那么如何扩展它以影响字符串,例如“男性”,“女性”?

    所有图片都位于silverlight应用程序内。

2 个答案:

答案 0 :(得分:4)

查看博客文章A Generic Boolean Value Converter。有了代码,你可以添加这个转换器: -

 public class BoolToBitmapImageConverter : BoolToValueConverter<BitmapImage> { }

现在将这个实例添加到您的Xaml: -

 <UserControl.Resource>
     <local:BoolToBitmapImageConverter x:Key="boolImgConv" >
         <local:BoolToBitmapImageConverter.TrueValue>
             <BitmapImage UriSource="TrueImg.png" />
         </local:BoolToBitmapImageConverter.TrueValue>
         <local:BoolToBitmapImageConverter.FalseValue>
             <BitmapImage UriSource="FalseImg.png" />
         </local:BoolToBitmapImageConverter.FalseValue>
     </local:BoolToBitmapImageConverter>
 </UserControl.Resource>     

现在您可以使用此转换器进行绑定:

 <Image Source="{Binding YourBoolProp Converter={StaticResource boolImgConv}}" />

同样,您可以为字符串添加转换器: -

 <local:BoolToStringConverter x:Key="boolSex" FalseValue="Male" TrueValue="Female" />

和: -

 <TextBlock Text="{Binding YouBoolProp Converter={StaticResource boolSex}}" />

答案 1 :(得分:1)

您必须实现boolean to string转换器并手动将布尔值转换为文件名。