Datagrid MVVM数据网格嵌套

Datagrid MVVM数据网格嵌套,datagrid,nested,Datagrid,Nested,我有一个数据网格,在其中我必须显示一个图像和一个必须显示消息的数据网格。我可以绑定父数据网格并显示图像,但是内部数据网格没有绑定,也没有显示任何错误 我遗漏了什么吗?这是我的xaml <DataGrid Grid.Column="0" AutoGenerateColumns="False" Width="Auto" ItemsSource="{Binding Col1}" ScrollViewer.VerticalScrollBarVisibility="Auto">

我有一个数据网格,在其中我必须显示一个图像和一个必须显示消息的数据网格。我可以绑定父数据网格并显示图像,但是内部数据网格没有绑定,也没有显示任何错误

我遗漏了什么吗?这是我的xaml

    <DataGrid Grid.Column="0" AutoGenerateColumns="False" Width="Auto" ItemsSource="{Binding Col1}" ScrollViewer.VerticalScrollBarVisibility="Auto">
                <DataGrid.Columns>
                    <DataGridTemplateColumn Width="SizeToCells" Header="Column1" >
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate  >
                                <StackPanel Orientation="Vertical" >
                                    <Image   Source="{Binding ImagePathItem1}" Height="20" Width="20"/>
                                    <DataGrid AutoGenerateColumns="False" ItemsSource="{Binding}" Height="250" Width="250">
                                        <DataGrid.Columns>
                                            <DataGridTemplateColumn Width="SizeToCells" Header="Column2">
                                                <DataGridTemplateColumn.CellTemplate>
                                                    <DataTemplate>
                                                        <TextBlock Text="{Binding MessageData}" Foreground="Orange"/>
                                                    </DataTemplate>
                                                </DataGridTemplateColumn.CellTemplate>
                                            </DataGridTemplateColumn>
                                        </DataGrid.Columns>
                                    </DataGrid>
                                </StackPanel>                                                                        
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn>                       
                </DataGrid.Columns>
            </DataGrid>


Col1集合绑定到父数据源,该数据可用于所有其他控件

我认为您误解了什么是绑定,在您的示例中,绑定表达式不完整:
ItemsSource=“{binding}”

正如您在评论中所说,
Col1
是一个
可观察的集合
。有趣的是这个类本身,但无论如何

将Col1绑定到父数据网格时,类的属性可供子控件绑定(对于集合中的每个项)。如果MyCollectionClass中再次没有这样的Col1属性,则无法将其绑定到内部DataGrid

假设您有以下类(简化):


对于集合中类的每个实例,在DataGrid中都有一行Firstname和Lastname,因为它们是类的公共属性。但是对于Col1不是这样。

我认为您误解了什么是绑定,在您的示例中,绑定表达式不完整:
ItemsSource=“{binding}”

正如您在评论中所说,
Col1
是一个
可观察的集合
。有趣的是这个类本身,但无论如何

将Col1绑定到父数据网格时,类的属性可供子控件绑定(对于集合中的每个项)。如果MyCollectionClass中再次没有这样的Col1属性,则无法将其绑定到内部DataGrid

假设您有以下类(简化):


对于集合中类的每个实例,在DataGrid中都有一行Firstname和Lastname,因为它们是类的公共属性。但是不能使用Col1。

您在内部数据网格上的绑定似乎不完整:
ItemsSource=“{binding}”
如果我提供与父网格相同的绑定,则表示绑定表达式错误……什么是“Col1”?你能在代码后面添加一些代码吗?Col1是我观察到的对象集合。。。public observeCollection Col1{get{return m_oCol1;}set{m_oCol1=value;OnPropertyChanged(()=>Col1);}}您在内部数据网格上的绑定似乎不完整:
ItemsSource=“{binding}”
如果我给出与父网格相同的绑定,它会显示绑定表达式错误…什么是“Col1”?你能在代码后面添加一些代码吗?Col1是我观察到的对象集合。。。公共可观测集合Col1{get{return m_oCol1;}set{m_oCol1=value;OnPropertyChanged(()=>Col1);}}}thnx didiier。。。这帮了大忙。。我尝试保留单独的集合作为Col1的属性,并将其绑定到子网格。thnx Didier。。。这帮了大忙。。我尝试保留单独的集合作为Col1的属性,并将其绑定到子网格。
public class MyCollectionClass {

    public string Firstname { get; set; }
    public string Lastname { get; set; }

}
ObservableCollection<MyCollectionClass> Col1;
ParentDataGrid: {Binding Col1)
     TextBox: {Binding Firstname}
     TextBox: {Binding Lastname}
     InnerDataGrid: {Binding Col1} // You can't do that