Как привязать изображение, используя динамический URL в WPF? - PullRequest
5 голосов
/ 24 февраля 2009

Я новичок в WPF, так что, надеюсь, я правильно сформулировал вопрос. То, что я хотел бы сделать, это привязать мой <Image> к изображению онлайн. Тем не менее, изображение я хотел бы связать с изменениями в зависимости от состояния приложения. Например, если бы я хотел привязать сотрудника, выбранного из списка, я бы извлек базовый URL из моего App.config и добавил имя изображения, используя идентификатор сотрудника, например:

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

Проблема в том, что я не уверен, как это сделать декларативно в WPF. Любая помощь с благодарностью!

Ответы [ 2 ]

3 голосов
/ 27 марта 2009

Есть ли у вас объект сотрудника в вашем коде? Если это так, вы можете предоставить свойство URI, построенное на основе идентификатора сотрудника объекта.

В противном случае вы могли бы иметь на своем сайте страницу asp.net, которая подает изображение (я понятия не имею, будет ли это работать, хотя это идея)

так что-то вроде этого в вашем xaml

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

Image.aspx будет потоковое изображение на основе переменной employeeId get?

Как я уже сказал, это, вероятно, немного не так, но это может сработать, но я думаю, что свойство URI в классе сотрудника было бы самым правильным вариантом.

0 голосов
/ 24 февраля 2009

Думаю, что-то подобное поможет:

<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";
...