C# 如何绑定数组的元素列表

C# 如何绑定数组的元素列表,c#,wpf,binding,C#,Wpf,Binding,我在ViewModel中有以下代码- List<Class1> categories = new List<Class1> Class1 ob1 = new Class1(){ Heading = "H1", Commands = new VMCommand[] { new VMCommand("Command11", CanExecuteCommand11, ExecuteCommand11), new VMCom

我在ViewModel中有以下代码-

List<Class1> categories = new List<Class1>
Class1 ob1 = new Class1(){
    Heading = "H1",
    Commands = new VMCommand[]
    {
        new VMCommand("Command11", CanExecuteCommand11, ExecuteCommand11),
        new VMCommand("Command12", CanExecuteCommand12, ExecuteCommand12),
        new VMCommand("Command13", CanExecuteCommand13, ExecuteCommand13),
        new VMCommand("Command14", CanExecuteCommand14, ExecuteCommand14)
    }
categories.Add(ob1);
Class1 ob2 = new Class1(){
    Heading = "H2",
    Commands = new VMCommand[]
    {
        new VMCommand("Command21", CanExecuteCommand21, ExecuteCommand21),
        new VMCommand("Command22", CanExecuteCommand22, ExecuteCommand22),
        new VMCommand("Command23", CanExecuteCommand23, ExecuteCommand23),
        new VMCommand("Command24", CanExecuteCommand24, ExecuteCommand24)
    }
categories.Add(ob2);
列表类别=新列表
Class1 ob1=新的Class1(){
Heading=“H1”,
Commands=新的VMCommand[]
{
新的VMCommand(“Command11”、CanExecuteCommand11、ExecuteCommand11),
新的VMCommand(“Command12”、CanExecuteCommand12、ExecuteCommand12),
新的VMCommand(“Command13”、CanExecuteCommand13、ExecuteCommand13),
新的VMCommand(“Command14”,CanExecuteCommand14,ExecuteCommand14)
}
类别。添加(ob1);
Class1 ob2=新的Class1(){
Heading=“H2”,
Commands=新的VMCommand[]
{
新的VMCommand(“Command21”、CanExecuteCommand21、ExecuteCommand21),
新的VMCommand(“Command22”、CanExecuteCommand22、ExecuteCommand22),
新的VMCommand(“Command23”、CanExecuteCommand23、ExecuteCommand23),
新的VMCommand(“Command24”、CanExecuteCommand24、ExecuteCommand24)
}
类别。添加(ob2);

我正在使用Xaml获取类别。我想创建一个包含所有类别中所有命令的列表。

您可以添加一个属性或方法,提取所有命令,然后绑定到该属性或方法。我还没有编译此属性或方法,但您应该能够执行以下操作:

public ObservableCollection<VMCommand> AllCommands
{
    return new ObservableCollection(categories.SelectMany(x => x.Commands));    
}
public observetecollection AllCommands
{
返回新的observeCollection(categories.SelectMany(x=>x.Commands));
}

我不想更改ViwModel。我得到一个提示-我尝试了类别/命令。它给出了第一组的所有命令。你能探索一下吗??