2009-02-24 9 views
5

Jestem nowy w WPF, więc mam nadzieję, że poprawnie sformułowałem pytanie. Chciałbym powiązać mój obraz <Image> z obrazem online. Jednak obraz, który chciałbym powiązać ze zmianami, zależy od stanu aplikacji. Na przykład, gdybym chciał związać się z wybranym z listy pracownika, chciałbym odzyskać bazowy URL z mojego app.config i dołączyć nazwę obrazu za pomocą identyfikatora pracownika, tak jak poniżej:Jak powiązać obraz za pomocą dynamicznego adresu URL w WPF?

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

Problem polega na tym, że nie jestem pewien, jak to zrobić w sposób deklaratywny w WPF. Każda pomoc jest bardzo cenna!

Odpowiedz

3

Czy masz pracownika obiektu w kodzie? Jeśli tak, możesz ujawnić właściwość URI, która jest budowana na podstawie identyfikatora pracownika obiektu.

W przeciwnym razie można mieć strony ASP.NET na swojej stronie internetowej, która służy do góry obraz (nie mam pojęcia, czy to będzie działać, to jest pomysł chociaż)

więc mieć coś takiego w swoim XAML

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

Image.aspx przesyła obraz na podstawie zmiennej employeeId get?

Jak już powiedziałem, prawdopodobnie jest trochę źle z tym, ale to mogłoby zadziałać, myślę, że właściwość URI na klasie pracownika byłaby najczystszą opcją.

+0

To działało świetnie. Dzięki za pomoc! –

0

myślę coś to pomoże:

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

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

Następnie w kodzie opóźnieniem:

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

Czy tę ścieżkę systemu plików można zastąpić adresem URL? Myślę, że takie jest oryginalne pytanie (i jestem ciekawy). –

+0

O ile mi wiadomo, tak. –

+0

Dzięki za odpowiedź. Świetna sugestia. Miałem jednak nadzieję, że można to zrobić w sposób deklaratywny (bez konieczności wchodzenia w kod). Czy mam nadzieję na zbyt wiele? :) –

Powiązane problemy