Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.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# 向组合框添加多个列表项_C#_Wpf_List_Combobox - Fatal编程技术网

C# 向组合框添加多个列表项

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

如何将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 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
。我建议您首先阅读关于引用类型@laynezwronskey
TestObjet=new HardCodedDatabase.TestID()
没有提到这个/:您将同一个对象
TestObjet
添加到列表中两次,并将其更改为
testName
。我建议您首先阅读关于引用类型@laynezwronskey
TestObjet=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完全不同,我建议将其作为一个相当好的起点,让您了解它