2012-10-24 107 views
0

我有一個充當視圖視圖模型的類。該類有一個ImageSource類型的公共成員。現在我需要的是將屬性類型更改爲uri(或字符串)。 但問題是我無法找到一種方法來從資源dicionary與URI訪問單個資源。URI和xaml中的資源

例如此刻我在做某事像這樣:

VectorResourcesDictionary = new ResourceDictionary(); 
Uri uri = new Uri("pack://application:,,,/assembly;component/IconResources.xaml", UriKind.Absolute); 
VectorResourcesDictionary.Source = uri; 
object rawResource = VectorResourcesDictionary["VectorIcon.LeftArrowIcon"]; 
return pickerSymbol = rawResource as ImageSource; 

現在,我怎樣才能使用URI代替的ImageSource的類似的結果?

+1

我的事情你做錯了MVVM。與UI相關的圖像,樣式等應該屬於View not ViewModel。我建議你將它移動到視圖(xaml文件)。 – Ekk

+0

是的,我知道它錯了,這就是爲什麼我必須將ImageSource(ui元素)更改爲簡單的字符串或URI。問題是如何使用URI獲得在xaml中定義的簡單資源... –

回答

0

很簡單,只是改變從ImageSource的屬性類型的URI:

public Uri PickerSymbol // i just guess the property name 
{ 
    get 
    { 
     // get resource as string instead of ImageSource 
     ... 
     string uri = rawResource as string 
     return new Uri(uri); 
    } 
} 

您認爲保持綁定到PickerSymbol財產,開放的我們將被自動轉換爲ImageSource的。

<Image Source="{Binding PickerSymbol}" />