我有一个绑定到自定义类的 ObservableCollection 的 DataGrid。集合是 ViewModel 中的一个属性,网格可以正常工作,包括对集合的更改。
我想使用 RowDetailsTemplate 在 StackPannel 中显示两个额外的集合,如下所示:
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Name="GrcidSP" Orientation="Horizontal">
<DataGrid Name="ClusterIndexGrid" AutoGenerateColumns="True"
ItemsSource="{Binding ClusterIndexColumns}"
CanUserAddRows="False" CanUserResizeRows="False"
Width="Auto"/>
<DataGrid Name="IndexGrid" AutoGenerateColumns="True"
ItemsSource="{Binding IndexColumns}"
CanUserAddRows="False" CanUserResizeRows="False"
Width="Auto"/>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
ClusterIndexColumns 和 IndexColumns 是内部网格的绑定源,也是 ViewModel 中的集合。
问题是,当我显示行详细信息时,数据网格是空的,即根本没有加载,没有列或行。
为了了解发生了什么,我用标签替换了内部数据网格:
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<StackPanel Name="GridSP" Orientation="Horizontal">
<Label Content="{Binding}" Width="Auto" Background="AliceBlue"/>
</StackPanel>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
并且没有指定绑定源 - {Binding}
标签现在显示作为外部网格源的集合中的自定义类的名称。
所以不知何故,我需要导航回 ViewModel 作为内部网格的数据上下文。
但是,如何,祈祷告诉?