将ImageSource对象直接绑定到XAML/WPF中的Image源?

A B*_*the 3 wpf binding mvvm imagesource

我有以下XAML代码:

<ListBox ItemsSource="{Binding Languages}">  
    <ListBox.ItemTemplate>  
        <DataTemplate>  
            <StackPanel>  
                <Image Source="{Binding LanguageIcon}" />  
                <Label Content="{Binding LanguageName}" />  
            </StackPanel>  
        </DataTemplate>  
    </ListBox.ItemTemplate>  
</ListBox>  
Run Code Online (Sandbox Code Playgroud)

并在模型类中:

class Language {  
    public string LanguageName;  
    public ImageSource LanguageIcon;  
}  
Run Code Online (Sandbox Code Playgroud)

我的modelview类包含:

public List<Language> Languages;
Run Code Online (Sandbox Code Playgroud)

充满了:

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))));  
Run Code Online (Sandbox Code Playgroud)

当我运行项目时,我的所有语言名称都显示在列表中,但不显示图标...为什么会发生这种情况,如何确保显示我的图标?(我确信资源确实存在,因为BitmapImages不会抛出错误)

Aar*_*ver 5

尝试将您的Uri路径更改为...

"../Resources/a.ico"
Run Code Online (Sandbox Code Playgroud)

编辑:

如果您尝试在不同的程序集中引用图像,请尝试使用包语法 ...

pack://application:,,,/ReferencedAssembly;component/Resources/a.ico
Run Code Online (Sandbox Code Playgroud)

... ReferencedAssembly包含图像的程序集在哪里.