WPF ItemsControl 和绑定到自身
WPF ItemsControl and binding to self
我有一个项目控件绑定到 '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>
ItemsControl
没有 SelectedItem
,这正是您在某种意义上正在寻找的东西。
您更适合使用 DataGrid
或 ListView
,其中有一个选定的行 属性(of/from 您的 A 集合)然后可以绑定到在子网格中显示替代信息。
我有一个项目控件绑定到 '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>
ItemsControl
没有 SelectedItem
,这正是您在某种意义上正在寻找的东西。
您更适合使用 DataGrid
或 ListView
,其中有一个选定的行 属性(of/from 您的 A 集合)然后可以绑定到在子网格中显示替代信息。