Как развернуть только группу SelectedItem в таблице данных WPF

Я только хочу расширить группу SelectedItem из сети данных, все остальные расширители будут свернуты. "SelectedItem" выбран из кода позади. Элемент имеет тип "Vault_Item" и привязан к свойству "RawMaterialItem". Используемое событие - ".SelectionChanged":

Private Sub Dgv_RawMaterials_SelectionChanged(sender As Object, e As SelectionChangedEventArgs) Handles Dgv_RawMaterials.SelectionChanged
  If Dgv_RawMaterials.SelectedItem IsNot Nothing Then
    Dim SelectedMaterialItem As Vault_Item = DirectCast(Dgv_RawMaterials.SelectedItem, Vault_Item)
    _vm.RawMaterialItem = SelectedMaterialItem
    'What to do next?....
  End If
End Sub

Это мой GroupStyle:

  <Style x:Key="TextBlockStyle" TargetType="TextBlock">

  </Style>

  <Style x:Key="Group_HeaderStyle" TargetType="{x:Type GroupItem}">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate TargetType="{x:Type GroupItem}">
          <Grid Width="{Binding ActualWidth,RelativeSource={RelativeSource TemplatedParent}}">
            <Expander  IsExpanded="False" Padding="5,2" Margin="0,0,0,0" Background="#FFD5DCE8">
              <Expander.Header>
                <StackPanel Orientation="Horizontal" Background="Transparent">
                  <TextBlock Text="{Binding Path=Name}"  Style="{DynamicResource TextBlockStyle}"/>
                  <TextBlock Text=" ("  FontWeight="DemiBold" Style="{DynamicResource TextBlockStyle}"/>
                  <TextBlock Text="{Binding Path=ItemCount}"  Style="{DynamicResource TextBlockStyle}"/>
                  <TextBlock Text=" "  FontWeight="DemiBold" Style="{DynamicResource TextBlockStyle}"/>
                  <TextBlock Text="Items"  FontWeight="DemiBold" Style="{DynamicResource TextBlockStyle}"/>
                  <TextBlock Text=")" FontWeight="DemiBold" Style="{DynamicResource TextBlockStyle}"/>
                </StackPanel>
              </Expander.Header>
              <Expander.Content>
                <ItemsPresenter/>
              </Expander.Content>
            </Expander>
          </Grid>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>

Это мой датагрид:

<TabItem x:Name="TabItem_RawMaterials" Header="Raw Materials">
            <DataGrid x:Name="Dgv_RawMaterials" Style="{DynamicResource DgvStyle}" HeadersVisibility="None">
              <DataGrid.GroupStyle>
                <GroupStyle ContainerStyle="{StaticResource Group_HeaderStyle}">
                  <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                      <DataGridRowsPresenter/>
                    </ItemsPanelTemplate>
                  </GroupStyle.Panel>
                </GroupStyle>
              </DataGrid.GroupStyle>
              <DataGrid.Columns>
                <DataGridTextColumn Binding="{Binding Path=Vault_Description}" Header="Description" CellStyle="{StaticResource LeftCellStyle}" CanUserResize="False" IsReadOnly="True" SortDirection="Ascending" Width="*" />
              </DataGrid.Columns>
            </DataGrid>
      </TabItem>

Это результат, которого я хочу достичь

Какие-либо предложения?

1 ответ

Это новое решение для вашего вопроса, пожалуйста, измените другие вещи в соответствии с вашими требованиями:

<DataGridColumn>
<DataGridColumn.CellTemplate>
    <DataTemplate>
        <Expander Header="{Binding SomeText}">
            <TextBlock TextWrapping="Wrap" Text="{Binding SomeText}" />
        </Expander>
    </DataTemplate>
</DataGridColumn.CellTemplate>

Другие вопросы по тегам