Как развернуть только группу 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>