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# 如何为这样的DataGrid组织ItemSource_C#_Wpf_Mvvm_Datagrid - Fatal编程技术网

C# 如何为这样的DataGrid组织ItemSource

C# 如何为这样的DataGrid组织ItemSource,c#,wpf,mvvm,datagrid,C#,Wpf,Mvvm,Datagrid,我正在使用MVVM,不知道如何为这样的DataGrid组织ItemSource类 DataGrid XAMl代码: <DataGrid CanUserAddRows="True" ItemsSource="{Binding TestCollection}"> <DataGrid.Columns> <DataGridTemplateColumn Header="First

我正在使用MVVM,不知道如何为这样的DataGrid组织ItemSource类

DataGrid XAMl代码:

<DataGrid  CanUserAddRows="True"
                   ItemsSource="{Binding TestCollection}">
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="First Column">
                    <DataGridTemplateColumn.CellEditingTemplate >
                        <DataTemplate >
                            <ContentControl>
                                <StackPanel>
                                    <TextBox Text="{Binding First}"/>
                                    <TextBox Text="{Binding Second}"/>
                                </StackPanel>
                            </ContentControl>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>

                <DataGridTemplateColumn Header="Second Column">
                    <DataGridTemplateColumn.CellEditingTemplate >
                        <DataTemplate >
                            <ContentControl>
                                <StackPanel>
                                    <TextBox Text="{Binding Third}"/>
                                    <TextBox Text="{Binding Fourth}"/>
                                </StackPanel>
                            </ContentControl>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
</DataGrid>
我有这个想法,但不管用

 public class ComplexTable
{
    public ComplexTable()
    {
        FirstProperty = new FirstClass();
        SecondProperty = new Second();    
    }
    public class FirstClass
    {
        public FirstClass()
        {
            First = "FirstString";
            Second = "SecondString";
        }
        public string First { get; set; }
        public string Second { get; set; }
    }

    public class Second
    {
        public Second()
        {
            Third = "ThirdString";
            Fourth = "FourthString";
        }
        public string Third { get; set; }
        public string Fourth { get; set; }
    }

    public FirstClass FirstProperty { get; set; }
    public Second SecondProperty { get; set; }
}

public ObservableCollection<ComplexTable> _testCollection = new ObservableCollection<ComplexTable>();
private ObservableCollection<ComplexTable> TestCollection
{
    get { return _testCollection; }
    set
    {
        _testCollection = value;
        RaisePropertyChanged("TestCollection");
    }

}
据我所知,ItemSource类中负责DataGrid列的每个属性,以及单元格是否包含多个控件等。属性类型也应该包括每个控件的属性。我想不出我错在哪里

你可以通过这个链接理解

 <StackPanel>
        <TextBox Text="{Binding SelectedItem.Name, ElementName=myDataGrid}"/>
        <DataGrid x:Name="myDataGrid" />
    </StackPanel>

我知道怎么装订。我的问题是关于如何组织这张桌子的课。