将子datagrid绑定到父列表函数

时间:2010-10-12 13:23:05

标签: wpf data-binding

所以我有以下xaml父列表视图以编程方式绑定到集合所有绑定工作都很好,除了数据网格没有填充。我需要采取额外的步骤,还是应该欺骗并将其绑定在后端。

<ListView.ItemTemplate>
            <DataTemplate>
                <Border BorderBrush="DarkSlateGray" BorderThickness="2">
                    <StackPanel Orientation="Vertical">
                        <DockPanel>
                            <Label TextBlock.FontWeight="ExtraBold" FontSize="14" DockPanel.Dock="Left">Message</Label>
                            <Label Content="{Binding FriendlyMessageText}"></Label>
                        </DockPanel>
                        <DockPanel>
                            <Label TextBlock.FontWeight="ExtraBold" FontSize="14" DockPanel.Dock="Left">Status</Label>
                            <Label Content="{Binding Status }"></Label>

                        </DockPanel>

                        <DataGrid Height="80" ItemsSource="{Binding AssocatedMessages }">
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="Text" Width="*" Binding="{Binding Path=FriendlyMessageText}" >

                                </DataGridTextColumn>
                                <DataGridTextColumn Header="Status Code"   Binding="{Binding  Path=StatusCode}" />
                                <DataGridTextColumn Header="Entity ID" Binding="{Binding EntityID}" />
                                <DataGridTextColumn Header="Category Code" Binding="{Binding CategoryCode }" />
                            </DataGrid.Columns>

                        </DataGrid>



                    </StackPanel>
                </Border>
            </DataTemplate>
        </ListView.ItemTemplate>

2 个答案:

答案 0 :(得分:1)

如果没有完整的代码知识,这就是黑暗中的一个镜头。当您将DataGrid的ItemsSource设置为AssocatedMessages(它可能是错误的)时,您将所有子项的DataContext设置为AssocatedMessages集合。

因此,如果您绑定到DG列中的FriendlyMessageText(假设它是ListView的数据源中的属性,因为您绑定到DG外的标签中的属性),绑定引擎将无法找到该财产。

要检查是否发生这种情况,请尝试按this post

中的说明调试绑定

我希望这会有所帮助。

谢谢, 达米安

答案 1 :(得分:0)

当我设置父列表框的itemsource时,我没有在父控件上设置数据上下文。