2012-04-13 143 views
0

我无法将图像绑定到转换器来源?来自转换器的WPF Xaml图像

<!-- Works fine --> 
<Image Grid.Row="0" Grid.Column="4" Grid.RowSpan="6" Margin="5">  
     <Image.Source> 
      C:\pictures\Becker.png 
     </Image.Source> 
</Image> 


<!-- Works not --> 
<Image Source="{Binding ClientPicture, Converter={StaticResource clientpictureconv}, ConverterParameter={Binding ClientNumber}}"/> 

在转换器中,我给出硬编码的图片Uri(从顶部)。如果我用文本块替换图像,则会显示完整的uri。但图片中的图片不是。

我该怎么办?

回答

4

这是因为Image.Source不需要URI对象;它需要一个ImageSource对象。您的转换器应该创建一个并将其传回。把这个在您的转换器,它会工作:

return new BitmapImage(myUri); 

注意BitmapImage是一种类型的ImageSource

您的第一个示例工作,因为XAML为您隐式地将URI字符串转换为ImageSource。当你使用你的转换器明确地返回一个URI对象时,它不能这么做。

+0

伟大的人!谢谢。 – 2012-04-13 06:43:15

+0

另外据我记得,你不能绑定converterparameter - 你可能能够做一些关于你得到的绑定,但它更容易使用转换器的多重绑定。 – 2012-04-16 11:10:38