2015-11-01 57 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