Я новичок в C # и WPF, я искал решение для моего вопроса в течение нескольких часов и ничего.
Итак, вопрос такой: у меня есть DataGrid, который имеет функцию группировки, котораяЯ сделал;Если пользователь щелкает заголовок столбца, он группирует элементы по свойству, представляющему столбец.Мне удалось сделать заголовки групп в следующем формате: "{Имя группы} {Количество элементов}"
, и я хочу, чтобы это было примерно так: "{Заголовок столбца}: {ГруппаИмя} {Items Count} "
Дело в том, что мне не удалось это сделать.
Есть мой XAML моей DataGrid, я очень надеюсь, что найду решение здесь ичто я не нарушаю никаких законов или дублирую что-либо, заранее спасибо:
<DataGrid x:Name="testerDataGrid" IsReadOnly="True" Width="800" RowDetailsVisibilityMode="VisibleWhenSelected"
ItemsSource="{Binding TestersCollection}" EnableRowVirtualization="True" AutoGenerateColumns="False" Sorting="TesterDataGrid_Sorting" >
<DataGrid.GroupStyle>
<GroupStyle>
<GroupStyle.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Name}"/>
</StackPanel>
</DataTemplate>
</GroupStyle.HeaderTemplate>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander>
<Expander.Header>
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Horizontal" Margin="0, 0, 0, 0">
<materialDesign:PackIcon Kind="ArrowDown"/>
<TextBlock Text="{Binding Path=Name}" Margin="0, 0, 10 , 0"/>
<TextBlock Text="("/>
<TextBlock Text="{Binding Path=ItemCount}" Margin="0,0,3,0"/>
<TextBlock Text="Trainees)"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="250, 0, 0, 0">
<materialDesign:PackIcon Kind="ArrowDown"/>
<TextBlock Text="{Binding Path=Name}" Margin="0, 0, 10 , 0"/>
<TextBlock Text="("/>
<TextBlock Text="{Binding Path=ItemCount}" Margin="0,0,3,0"/>
<TextBlock Text="Trainees)"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="250, 0, 0, 0">
<materialDesign:PackIcon Kind="ArrowDown"/>
<TextBlock Text="{Binding Path=Name}" Margin="0, 0, 10 , 0"/>
<TextBlock Text="("/>
<TextBlock Text="{Binding Path=ItemCount}" Margin="0,0,3,0"/>
<TextBlock Text="Trainees)"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="250, 0, 0, 0">
<materialDesign:PackIcon Kind="ArrowDown"/>
<TextBlock Text="{Binding Path=Name}" Margin="0, 0, 10 , 0"/>
<TextBlock Text="("/>
<TextBlock Text="{Binding Path=ItemCount}" Margin="0,0,3,0"/>
<TextBlock Text="Trainees)"/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="250, 0, 0, 0">
<materialDesign:PackIcon Kind="ArrowDown"/>
<TextBlock Text="{Binding Path=Name}" Margin="0, 0, 10 , 0"/>
<TextBlock Text="("/>
<TextBlock Text="{Binding Path=ItemCount}" Margin="0,0,3,0"/>
<TextBlock Text="Trainees)"/>
</StackPanel>
</StackPanel>
</Expander.Header>
<ItemsPresenter/>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</DataGrid.GroupStyle>
<DataGrid.ContextMenu>
<ContextMenu>
<MenuItem x:Name="WorkTimeCmi" Header="Show Work Time" Click="WorkTimeCmi_Click">
<MenuItem.Icon>
<materialDesign:PackIcon Kind="Show"/>
</MenuItem.Icon>
</MenuItem>
<Separator/>
<MenuItem x:Name="AddCmi" Header="Add a New Tester" Click="AddCmi_Clicked">
<MenuItem.Icon>
<materialDesign:PackIcon Kind="Plus"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="EditCmi" Header="Edit" Click="EditCmi_Clicked">
<MenuItem.Icon>
<materialDesign:PackIcon Kind="Edit"/>
</MenuItem.Icon>
</MenuItem>
<MenuItem x:Name="RemoveCmi" Header="Remove" Click="RemoveCmi_Clicked">
<MenuItem.Icon>
<materialDesign:PackIcon Kind="Trash"/>
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>
<DataGrid.Columns>
<DataGridTextColumn x:Name="idColumn" Width="SizeToCells" Header="Id" Binding="{Binding Id}"/>
<DataGridTextColumn x:Name="firstNameColumn" Width="SizeToHeader" Header="First Name" Binding="{Binding FirstName}"/>
<DataGridTextColumn x:Name="lastNameColumn" Width="SizeToHeader" Header="Last Name" Binding="{Binding LastName}"/>
<DataGridTextColumn x:Name="genderColumn" Width="SizeToHeader" Header="Gender" Binding="{Binding Gender}"/>
<DataGridTextColumn x:Name="dateOfBirthColumn" Width="SizeToHeader" Header="Date Of Birth" Binding="{Binding DateOfBirthStringFormat}" IsReadOnly="True"/>
<DataGridTextColumn x:Name="ageColumn" Width="SizeToHeader" Header="Age" Binding="{Binding Age}"/>
<DataGridTextColumn x:Name="addressColumn" Width="SizeToCells" Header="Address" Binding="{Binding AddressStringFormat}"/>
<DataGridTextColumn x:Name="phoneNumberColumn" Width="SizeToHeader" Header="Phone Number" Binding="{Binding PhoneNumber}"/>
<DataGridTextColumn x:Name="emailAddressColumn" Width="SizeToCells" Header="Email Address" Binding="{Binding EmailAddress}"/>
<DataGridTextColumn x:Name="carTypeColumn" Width="SizeToHeader" Header="Car Type" Binding="{Binding CarType}"/>
<DataGridTextColumn x:Name="maximalDistanceColumn" Width="SizeToHeader" Header="Max. Dist." Binding="{Binding MaximalDistance}"/>
<DataGridTextColumn x:Name="weeklyTestsCountColumn" Width="SizeToHeader" Header="Weekly Tests" Binding="{Binding WeeklyTestsCount}"/>
<DataGridTextColumn x:Name="maximalWeeklyTestsColumn" Width="SizeToHeader" Header="Max. Weekly Tests" Binding="{Binding MaximalWeeklyTests}"/>
<DataGridTextColumn x:Name="yearsOfExperienceColumn" Width="SizeToHeader" Header="Exp. (Years)" Binding="{Binding YearsOfExperience}"/>
</DataGrid.Columns>
</DataGrid>