【问题标题】:WPF ItemsControl and binding to selfWPF ItemsControl 并绑定到自身
【发布时间】:2019-12-31 15:03:39
【问题描述】:

我有一个项目控件绑定到“TypeA”类型的集合。这种类型 'TypeA' 有一个类型 'TypeB' 的集合。

在项目控件dataTemplate 中,我有一个datagrid,它为TypeB 集合的每个项目显示一行,并且为每一行显示变量“VariableOfTypeB”的值的一列。

效果很好。

现在,我想在下面显示另一个datagrid,它绑定到类型“TypeA”的集合的当前项,并将显示变量“VariableOfTypeA”的值。这我似乎无法实现。

我可以在datagrid 之外访问“VariableOfTypeA”,例如在标签中。

请问您有什么建议吗?

<ItemsControl ItemsSource="{Binding TypeACollection}">
    <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
            <StackPanel Orientation="Vertical" />
        </ItemsPanelTemplate>
    </ItemsControl.ItemsPanel>
    <ItemsControl.ItemTemplate>
        <DataTemplate>
                <StackPanel>
                    <DataGrid ItemsSource="{Binding TypeBCollection}">
                        <DataGrid.Columns>
                            <DataGridTextColumn Width="Auto"
                                                Binding="{Binding VariableOfTypeB />
                        </DataGrid.Columns>
                    </DataGrid>
                    <!-- cannot make this work -->
                    <DataGrid ItemsSource="{Binding}">
                        <DataGrid.Columns>
                            <DataGridTextColumn Width="Auto"
                                                Binding="{Binding VariableOfTypeA />
                        </DataGrid.Columns>
                    </DataGrid>
                </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

【问题讨论】:

  • 不确定它与任何东西有什么关系。请再次阅读问题:我想将数据网格与当前的TypeA项绑定。我可以在数据网格之外很好地访问它。
  • 再一次,你不明白这个问题。感谢您抽出宝贵时间回复。
  • to bind 的过去式(和过去分词)是 bound。它是“我有一个项目控件绑定(或绑定)到一个集合”绑定 不存在。我读的太频繁了,总觉得很烦。

标签: wpf itemscontrol


【解决方案1】:

ItemsControl 没有SelectedItem,这在某种意义上是您正在寻找的。

您会更适合使用DataGridListView,它具有选定的行属性(来自/来自您的 A 集合),然后可以绑定到子网格中以显示备用信息。

【讨论】:

  • 好的,很公平,感谢您抽出宝贵时间回复 OmegaMan。我将找到另一种方法来实现此结果。
猜你喜欢
  • 2010-12-26
  • 1970-01-01
  • 2011-03-10
  • 1970-01-01
  • 2016-05-11
  • 2010-12-16
  • 1970-01-01
  • 2013-06-15
  • 1970-01-01
相关资源
最近更新 更多