2009-02-24 17 views
5

私はWPFの初心者ですので、うまくいけば質問を正しく記述しました。私がしたいのは、私の<Image>をオンラインで画像にバインドすることです。しかし、バインドしたい画像は、アプリケーションの状態によって変わります。私は、リストから選択された従業員にバインドしたい場合たとえば、私は私のApp.configファイルからベースURLを取得し、これと同様に、従業員のIDを使用してイメージ名を追加したい:WPFで動的URLを使用してイメージにバインドするにはどうすればよいですか?

var baseUrl = ConfigurationSettings.AppSettings["BaseImageUrl"]; 
var imageUrl = String.Format("{0}/{1}.jpg", baseUrl, employeeID); 

問題は、WPFでこれを宣言的に行う方法がわかりません。どんな助けでも大歓迎です!

<Window.Resources> 
    <ImageSource x:Key="MyImage" Source="C:\Images\Default.jpg" /> 
</..> 

<Image Source="{DynamicResource MyImage}" /> 

次に、あなたのコードビハインドで:

答えて

3

、あなたのコード内で従業員オブジェクトを持っていますか?そうであれば、オブジェクトの従業員IDに基づいて構築されたURIプロパティを公開することができます。

そうでなければ、あなたが画像をアップ機能あなたのウェブサイト上のasp.netページを持つことができます(これが動作する場合、私は見当がつかない、それはしかし考えである)

ので、あなたのXAMLでこのような何かを持っている

<Image Source="{Binding Path=EmployeeId, StringFormat='http://my.url.com/Image.aspx?employeeId={0}'}" /> 

Image.aspxは、employeeId get変数に基づいてイメージをストリームしますか?

私が言ったように、これは多分間違っているかもしれませんが、うまくいくかもしれませんが、従業員クラスのURIプロパティが最もクリーンなオプションになると思います。

+0

これはうまくいった。助けてくれてありがとう! –

0

私はこのような何かが助けになると思い

((ImageSource)this.Resources["MyImage"]).Source = "C:\Path\From\Config.jpg"; 
+0

ファイルシステムのパスをURLに置き換えることはできますか?私はこれが元の質問に必要なものだと思う(そして私は興味がある)。 –

+0

私が知る限り、はい。 –

+0

お返事ありがとうございます。素晴らしい提案。しかし、私は宣言的に(コードビハインドに入ることなく)これを行う方法があることを期待していました。私はあまりにも多くを望んでいますか? :) –

関連する問題