Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将图像绑定到ComboBox.ItemTemplate_C#_Image_Data Binding_Combobox_Imagesource - Fatal编程技术网

C# 将图像绑定到ComboBox.ItemTemplate

C# 将图像绑定到ComboBox.ItemTemplate,c#,image,data-binding,combobox,imagesource,C#,Image,Data Binding,Combobox,Imagesource,我正在尝试一些我认为相当简单的绑定。我正在将一组角色对象绑定到我的组合框。要显示combobox中的字符列表,我使用combobox.itemtemplate来显示字符名称、级别和图像 我可以显示角色名称和级别,但不能显示图像。我相信我已将图像正确绑定到xaml。知道我错过了什么吗 xaml MainWindow.cs public ObservableCollection<Character> squad_members = new ObservableCollecti

我正在尝试一些我认为相当简单的绑定。我正在将一组角色对象绑定到我的组合框。要显示combobox中的字符列表,我使用combobox.itemtemplate来显示字符名称、级别和图像

我可以显示角色名称和级别,但不能显示图像。我相信我已将图像正确绑定到xaml。知道我错过了什么吗

xaml


MainWindow.cs

    public ObservableCollection<Character> squad_members = new ObservableCollection<Character>();
    public Image depImage;
    public Image dependaImage 
    {
        get 
        {
            Image designate = new Image();
            BitmapImage bmi = new BitmapImage(new Uri("character1.png", UriKind.Relative));
            designate.Source = bmi;

            return designate;
        } 
    }

    public MainWindow()
    {
        InitializeComponent();

        squad_members.Add(new Character() { Name = "Wacken", Level = 8, Character_Class = CharacterClass.Mage, _Gender = Gender.Male, Strength = 6, Intelligence = 9, Dexterity = 3, Gold = 1255, Inventory = new ObservableCollection<Item>() { new Item("Gerrund Wand", "Magical Direction", 656, "Witcher Magical Wand", true ), new Item("Velcro Whip", "Whips your face off", 12, "Annoying as hell", true ), new Item("Invisibility Cloak", "Invisibility", 900, "Cloak of Invisibility", true)}});
        squad_members.Add(new Character() { Name = "Vrigun", Level = 4, Character_Class = CharacterClass.Mage, _Gender = Gender.Female, Strength = 3, Intelligence = 10, Dexterity = 1, Gold = 2055, Inventory = new ObservableCollection<Item>() { new Item("Satanic Girdings", "Demonic Protection", 6660, "Clothing protects user from attack", true ), new Item("Viper Staff", "Poisons Enemy Resolve", 860, "Bites and Kills Everything", true ), new Item("Baal Mask", "Infects enemy mind", 6660, "Possesses User's Opponents", false ) }});

        Binding comboBinding = new Binding();
        comboBinding.Source = squad_members;
        BindingOperations.SetBinding(Character_ComboBox, ComboBox.ItemsSourceProperty, comboBinding);
    }
公共ObservableCollection团队成员=新ObservableCollection();
公众形象;
公众形象
{
得到
{
图像指定=新图像();
BitmapImage bmi=新的BitmapImage(新Uri(“character1.png”,UriKind.Relative));
指定。来源=体重指数;
返回指定;
} 
}
公共主窗口()
{
初始化组件();
小队成员。添加(新角色(){Name=“Wacken”,等级=8,角色=CharacterClass.Mage,{u性别=Gender.Male,力量=6,智力=9,灵巧度=3,黄金=1255,库存=new observecollection(){新物品(“Gerrund魔杖”,“魔法方向”,656,“巫师魔杖”,真),新物品(“Velcro鞭”,“鞭打你的脸”,12,“像地狱一样烦人”,真),新物品(“隐形斗篷”,“隐形”,900,“隐形斗篷”,真)};
小队成员。添加(新角色(){Name=“Vrigun”,等级=4,角色等级=CharacterClass.Mage,{u性别=Gender.femal,力量=3,智力=10,灵巧度=1,黄金=2055,库存=newobservecollection(){新物品(“恶魔腰带”,“恶魔保护”,6660,“衣服保护用户免受攻击”,正确),新物品(“毒蛇杖,“毒害敌人决心”,860,“咬死一切”,正确),新物品(“巴尔面具”,“感染敌人心灵”,6660,“拥有用户的对手”,错误)});
Binding comboBinding=新绑定();
comboBinding.Source=团队成员;
BindingOperations.SetBinding(字符\组合框,组合框.ItemsSourceProperty,组合绑定);
}

您正在将
属性绑定到
图像
。请尝试此操作

public ImageSource depImage;
public ImageSource dependaImage 
{
    get 
    {
        if( depImage == null )
            {
                depImage= new BitmapImage( new Uri( "character1.png", UriKind.Relative ) );
            }
            return depImage;
    } 
}

而且,您的
Character
类应该具有此属性。

在这种情况下是Image类型的34; imageSource"吗?还是其他类型的?明白了。但是图像仍然不会在组合框内绑定。将imageSource属性移动到Character类它不应该能够从现在的位置绑定吗?它应该能够从我的位置绑定t是。(这是一个有点人为设计的场景——在当前代码中,我只是尝试将一个图像绑定到每个combobox字符表示)模板的上下文将来自combobox的ItemsSource,它不是当前位置,而是角色集合中的每个项。。
public ImageSource depImage;
public ImageSource dependaImage 
{
    get 
    {
        if( depImage == null )
            {
                depImage= new BitmapImage( new Uri( "character1.png", UriKind.Relative ) );
            }
            return depImage;
    } 
}