我有以下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