2015-11-01 56 views
0

也许有人有关于如何得到这个工作的想法:灌装用字典作为数据源的组合框时,它使用UINT和自定义类

我的程序是被另一个程序使用,并得到了一个dll来自那里的信息。

字典被声明为以下几点:

public Dictionary<uint, Skill> Skills { get; } 

和类技能被声明为以下几点:

public class Skill 
{ 
    public Skill(uint id, string name, string description, ushort levelRequired); 

    public string Description { get; } 
    public uint Id { get; } 
    public ushort LevelRequired { get; } 
    public string Name { get; } 
} 

我的目标是让我的组合框与技能的名称填写并使用ID作为其值我与“的SelectedItem”获得

希望有人能帮助我在这,我相信的我尝试了50种不同的方法,我在网络上发现这里...

问候

回答

0

为什么你有UINT作为字典键,按我的理解,在类相同UINT?

您可以尝试将“ItemsSource”属性绑定到Dictionary(或Dictionary.Values),然后将“DisplayMemberPath”属性绑定到“Name”,并使用“SelectedValuePath”将ID设置为值。

SelectedValuePath
DisplayMemberPath

0
public class Item 
    { 
     public string Name; 
     public uint Value; 

     public Item(string name, uint value) 
     { 
      Name = name; Value = value; 
     } 
     public override string ToString() 
     { 
      // Generates the text shown in the combo box 
      return Name; 
     } 
    } 

public Dictionary<uint, Skill> Skills = new Dictionary<uint, Skill>(); 
private void FormTesting_Load(object sender, EventArgs e) 
     { 


      Skill tempSkill= new Skill(); 
      tempSkill.Name = "test name"; 
      Skills.Add(1, tempSkill); 

      foreach (uint val in Skills.Keys) 
      { 
       comboBox1.Items.Add(new Item(Skills[val].Name,val)); 
      } 
     } 

希望它会帮助你。

+0

正在全力工作,谢谢:)! – netHox

+0

嗨马克回答如果帮助你,谢谢 – Max

相关问题