我有一種感覺,這是一個簡單的問題,但我很難找出答案。我使用Silverlight,MVVM和Caliburn Micro開發我的項目。在一個部分中,我有一個應該顯示員工照片的員工查詢。用戶將輸入一個ID號碼,系統應該查找用戶並在文件服務器上找到員工的圖像。該圖像以員工ID號碼命名(例如,1234.jpg爲員工1234)。使用Caliburn Micro和Silverlight從文件服務器加載圖像
我不會在設計時將這些圖片作爲資源加載,因爲有數百個,用戶可能只需要一個圖像。我的問題是如何設置我的模型,以正確綁定到圖像控件?我知道使用基本的Caliburn Micro(我還是比較新的,所以我沒有覆蓋所有不常見的區域),所以我基本上只會從每個區域的片段中獲益(視圖,模型視圖和模型)將涉及圖像控件。理想的情況是將圖像的文件路徑分配給一個變量,並將其作爲圖像顯示在我的視圖中。然後,如果文件路徑爲空,則圖像消失。
這裏是我試過的代碼:
視圖模型 - 這是爲了簡化。我會將其中的一部分推向模型,但重點突出。
public ImageSource Photo
{
get
{
return new BitmapImage(new Uri(UserPhoto, UriKind.Absolute));
}
}
public string UserPhoto
{
get
{
return this._userPhoto;
}
set
{
this._userPhoto = value;
NotifyOfPropertyChange(() => UserPhoto);
NotifyOfPropertyChange(() => Photo);
}
}
查看
<Image x:Name="Photo" />
的UserPhoto屬性是保存URL到圖像的字符串屬性。我嘗試了網址以及UNC路徑。圖像被驗證在該位置,但是當我在Photo屬性上激發INCP時,圖像不顯示。
更新
它更玩了之後,似乎如果你使用的文件路徑(文件://yourserver/yourpath/yourfile.jpg)這種解決方案會奏效。我一直試圖通過http(http://yourserver.domain/yourpath/yourfile.jpg)訪問文件的公共端。 http方法不起作用,但文件方法不起作用。我仍然想使用http方法,但我至少有一個解決方法。任何想法,爲什麼文件會工作,但http不會?
我正在這樣做。我更新了我的帖子以包含UserPhoto屬性,所以您可以看到我是如何做到的。我查了一下,該財產被解僱,但沒有圖像顯示在我的網頁上。 – IAmTimCorey