C# 向组合框添加多个列表项
如何将ListForTesting中的所有testName放入组合框?我已经尝试过combobox_testType.ItemsSource=ListForTesting.testName,但它不起作用C# 向组合框添加多个列表项,c#,wpf,list,combobox,C#,Wpf,List,Combobox,如何将ListForTesting中的所有testName放入组合框?我已经尝试过combobox_testType.ItemsSource=ListForTesting.testName,但它不起作用 public class ManoeuvresID { public string manName { get; set; } public int manID { get; set; } } public class TestID { public string te
public class ManoeuvresID
{
public string manName { get; set; }
public int manID { get; set; }
}
public class TestID
{
public string testName { get; set; }
public int ID { get; set; }
public IList<ManoeuvresID> manoeuvres { get; set; }
}
HardCodedDatabase.TestID TestObjet = new HardCodedDatabase.TestID();
TestObjet.manoeuvres = new List<HardCodedDatabase.ManoeuvresID>();
HardCodedDatabase.ManoeuvresID man = new HardCodedDatabase.ManoeuvresID();
man.manName="man1";
man.manID = 2;
TestObjet.manoeuvres.Add(man);
List<HardCodedDatabase.TestID> ListForTesting = new List<HardCodedDatabase.TestID>();
TestObjet.testName = "Steady State";
ListForTesting.Add(TestObjet);
TestObjet = new HardCodedDatabase.TestID();
TestObjet.testName = "test2";
ListForTesting.Add(TestObjet);
combobox_testType.ItemsSource = ListForTesting;
公共类操纵ID
{
公共字符串manName{get;set;}
公共int manID{get;set;}
}
公共类测试
{
公共字符串testName{get;set;}
公共int ID{get;set;}
公共IList操作{get;set;}
}
HardCodedDatabase.TestID TestObjet=新的HardCodedDatabase.TestID();
TestObjet.movements=新列表();
HardCodedDatabase.moveuresid man=新的HardCodedDatabase.moveuresid();
man.manName=“man1”;
man.manID=2;
测试喷气式飞机。操纵。添加(人);
List ListForTesting=新列表();
TestObjet.testName=“稳态”;
ListForTesting.Add(TestObjet);
TestObjet=new HardCodedDatabase.TestID();
TestObjet.testName=“test2”;
ListForTesting.Add(TestObjet);
combobox_testType.ItemsSource=ListForTesting;
你试过linq吗
combobox_testType.ItemsSource = ListForTesting.Select(t=>t.testName);
另一个选项是使用DisplayMemberPath
combobox_testType.ItemsSource = ListForTesting;
combobox_testType.DisplayMemberPath= "testName";
你试过linq吗
combobox_testType.ItemsSource = ListForTesting.Select(t=>t.testName);
另一个选项是使用DisplayMemberPath
combobox_testType.ItemsSource = ListForTesting;
combobox_testType.DisplayMemberPath= "testName";
您只需使用items.add或items.AddRange添加对象项即可 下面的例子
foreach (var item in ListForTesting)
comBox.Items.Add(item);
添加范围
comBox.Items.AddRange(ListForTesting);
然后设置类对象中的哪些属性将用于显示,并且是关键点
comBox.DisplayMember = "testName";
comBox.ValueMember = "TestId";
您只需使用items.add或items.AddRange添加对象项即可 下面的例子
foreach (var item in ListForTesting)
comBox.Items.Add(item);
添加范围
comBox.Items.AddRange(ListForTesting);
然后设置类对象中的哪些属性将用于显示,并且是关键点
comBox.DisplayMember = "testName";
comBox.ValueMember = "TestId";
您将同一对象
TestObjet
添加到列表中两次,并将其更改为testName
。我建议您首先阅读关于引用类型@laynezwronskeyTestObjet=new HardCodedDatabase.TestID()
没有提到这个/:您将同一个对象TestObjet
添加到列表中两次,并将其更改为testName
。我建议您首先阅读关于引用类型@laynezwronskeyTestObjet=new HardCodedDatabase.TestID()代码>没有提到这个/:谢谢,克里斯。第一个选项非常有效,我只需添加item.testName。关于第二个选项,它没有显示AddRange选项?WPF中的组合框可能与winforms不同。您可以在winforms的组合框上获得AddRange。永远不要使用它,始终使用添加功能,因为您有更多的控制权。减少未知的黑盒!那么您想在这个列表中显示子ManName吗?如果没有,则从var项(TestID)组合框中获取所选项时,将可以访问子项。SelectedItem。选择(x=>x.manName)您可能想要查看TreeView或创建一个Customer控件,您有一个组合框,其中包含一个TreeView,您需要主父元素吗?您可以使用父元素,然后在选择更改时,使用子列表填充组合框或新组合框。并显示ManNameThanks Chris。第一个选项非常有效,我只需添加item.testName。关于第二个选项,它没有显示AddRange选项?WPF中的组合框可能与winforms不同。您可以在winforms的组合框上获得AddRange。永远不要使用它,始终使用添加功能,因为您有更多的控制权。减少未知的黑盒!那么您想在这个列表中显示子ManName吗?如果没有,则从var项(TestID)组合框中获取所选项时,将可以访问子项。SelectedItem。选择(x=>x.manName)您可能想要查看TreeView或创建一个Customer控件,您有一个组合框,其中包含一个TreeView,您需要主父元素吗?您可以使用父元素,然后在选择更改时,使用子列表填充组合框或新组合框。和显示甘露方法相同,带有一个操作列表。在甘露名称上选择或设置DisplayMemberPath,如果要从TestID列表中选择,则可以执行ListForTesting.SelectMany(t=>t.movements)。选择(m=>m.manName)
cool。这就是我要找的combobox\u testType.ItemsSource=ListForTesting[0]。操纵。选择(t=>t.manName)
WPF功能非常强大,几乎可以肯定,一旦WinForms成熟,它将取代WinForms,但它所基于的理念与WinForms完全不同,我建议将其作为一个相当好的起点,让您的头脑清醒过来。同样,还有一个操作列表。我会选择manName或set DisplayMemberPath,如果您想从TestID列表中执行此操作,则可以执行ListForTesting.SelectMany(t=>t.manodes)。Select(m=>m.manName)
cool。这就是我要找的combobox\u testType.ItemsSource=ListForTesting[0]。操纵。选择(t=>t.manName)
WPF功能非常强大,几乎可以肯定,一旦WinForms成熟,它将取代WinForms,但它所基于的思想与WinForms完全不同,我建议将其作为一个相当好的起点,让您了解它