我有以下XAML代碼:將ImageSource對象直接綁定到XAML/WPF中的圖像源?
<ListBox ItemsSource="{Binding Languages}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<Image Source="{Binding LanguageIcon}" />
<Label Content="{Binding LanguageName}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
,並在模型類:
class Language {
public string LanguageName;
public ImageSource LanguageIcon;
}
我的模型視圖類包含:
public List<Language> Languages;
其被裝滿:
Languages.Add(new Language("A",new BitmapImage(new Uri("Resources/a.ico",
UriKind.Relative))));
Languages.Add(new Language("B",new BitmapImage(new Uri("Resources/b.ico",
UriKind.Relative))));
當我運行該項目時,我的所有語言名稱都顯示在列表中,但不顯示圖標......爲什麼會發生這種情況,我如何確保顯示圖標? (我相信確實存在的資源爲BitmapImages不會引發錯誤)
我想你應該重新考慮你的概念,並使用一個枚舉的語言。在xaml中,您可以使用valueconverters將枚舉轉換爲語言名稱和圖標。 – thumbmunkeys 2010-12-15 16:15:23
您遇到的問題是對象上的Image.Source是ImageSource對象,但是當它通過Xaml公開時,它是Uri的字符串。 http://msdn.microsoft.com/en-us/library/system.windows.controls.image.source(v=VS.95).aspx – Agies 2010-12-15 16:23:45