2012-04-13 19 views
0

イメージをコンバータからソースにバインドできませんか?WPF Xaml Image from Converter

<!-- 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(上から)を戻します。 ImageをTextblockに置き換えると、完全なURIが表示されます。しかし、画像の画像ではありません。

私は何ができますか?

答えて

4

Image.SourceはURIオブジェクトを受け取らないためです。 ImageSourceオブジェクトが必要です。あなたのコンバータはそれらの1つを作成し、それを戻す必要があります。あなたのコンバータでこれを入れて、それがうまくいく:

return new BitmapImage(myUri); 

BitmapImageImageSourceのタイプであること。

最初の例は、XAMLがURI文字列を暗黙的にImageSourceに変換するため、最初の例が有効です。これは、コンバータを使用してURIオブジェクトを明示的に返すときには実行できません。

+0

偉大な男!どうも。 –

+0

また、converterparameterをバインドすることができないことを覚えている限り、バインディングに関して何かできることがあるかもしれませんが、コンバーターでマルチバインディングを使用する方が簡単です。 –