2009-02-24 96 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中聲明性地執行此操作。任何幫助是極大的讚賞!

回答

3

你有沒有在你的代碼中的員工對象?如果是這樣,您可以公開一個基於對象的員工ID構建的URI屬性。

否則,你可以對你的網站,供應了圖像的asp.net頁面(我不知道這是否會工作,這是一個想法雖然)

所以有這樣的事情在你的XAML

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

Image.aspx將基於employeeId獲取變量流圖像?

正如我所說的可能有點錯了,但它可以工作,我認爲員工類的URI屬性將是最乾淨的選項。

0

我認爲像這樣將有助於:

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

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

然後在你的後臺代碼:

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

該文件系統路徑可以代替一個URL嗎?我認爲這就是原始問題所要求的(我很好奇)。 – 2009-02-24 09:33:35

+0

據我所知,是的。 – 2009-02-24 09:39:29