Zacząłem przeglądać kod źródłowy i już byłem pewien, że przetłumaczenie tego nie będzie wcale takie proste. Okazało się, że formatka dla tego TextBlock'a siedzi w zasobach aplikacji, które są dołączane w trakcie kompilacji. Natomiast jak dorwać się do elementów składowych kontrolki – nie mam pojęcia na ten moment, choć wiem, że jest to możliwe, to jednak wymaga sporego nakładu pracy (jak dobrze zauważyłem). Natomiast jest proste rozwiązanie.Otóż:
XAML:
<controls:DataGrid x:Name="dg" AutoGenerateColumns="True"
LoadingRowGroup="Dg_LoadingRowGroup" RowGroupHeaderPropertyNameAlternative="Moja nazwa zakresu ">
<controls:DataGrid.RowGroupHeaderStyles>
<!-- Chowamy domyślny wskaźnik ilości elementów w grupie -->
<Style TargetType="controls:DataGridRowGroupHeader">
<Setter Property="ItemCountVisibility" Value="Collapsed" />
</Style>
</controls:DataGrid.RowGroupHeaderStyles>
</controls:DataGrid>
W kodzie za-widokiem:
private void Dg_LoadingRowGroup(object sender, Microsoft.Toolkit.Uwp.UI.Controls.DataGridRowGroupHeaderEventArgs e)
{
ICollectionViewGroup group = e.RowGroupHeader.CollectionViewGroup;
YourDataType item = group.GroupItems[0] as YourDataType;
var groupName = item.Value.ToString("X");
var count = group.GroupItems.Count;
// Tutaj dodajemy wyświetlanie ilości elementów
var header = $"{groupName} ({count}";
if (count == 1) header += " element)";
else if (count < 5) header += " elementy)";
else header += " elementów)";
e.RowGroupHeader.PropertyValue = header;
}
I oto efekt:
