2009-02-24 97 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