Есть несколько способов, которыми вы можете достичь этого, и хотя ни один из них не является хорошим способом сделать это технически, они должны держать вас в движении.Я собираюсь предположить, что вы знакомы с парадигмой MVVM (если не просто искать «MVVM WPF»).
Без сетки Просмотр
Если вы счастливыотображать ваши данные в столбцах без необходимости использовать gridview.Например, вы можете просто использовать список и установить источник элементов в IEnumerable и предоставить список различных типизированных значений.Финал может быть вашей итоговой строкой.Просто предоставьте для каждого типа, и вы получите разные форматы строк.т.е.
return ((IEnumerable<object>)model.Pairs)
.Concat(new SummaryRow(model.Pairs));
И XAML
<ListBox Grid.IsSharedSizeScope ItemsSource={Binding}>
<ListBox.Resources>
<DataTemplate DataType="{x:Type IntPair}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="XColumn"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="YColumn"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding VarX}">
<TextBlock Grid.Column="1" Text="{Binding VarY}">
</Grid>
</DataTemplate>
<DataTemplate DataType="{x:Type SummaryRow}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="XColumn"/>
<ColumnDefinition Width="Auto" SharedSizeGroup="YColumn"/>
</Grid.ColumnDefinitions>
<TextBlock Text="The sum is:">
<TextBlock Grid.Column="1" Text="{Binding Total}">
</Grid>
</DataTemplate>
</ListBox.Resources>
</ListBox>
с GridView
В качестве альтернативы просто используйте ViewModel для предоставления IEnumerable.Таким образом, ваша модель может иметь IEnumerable, и вы можете сделать что-нибудь простое, например
return (from x in model.Pairs
select new ConvertedResults
{
VarX = x.IntX.ToString(),
VarY = x.IntY.ToString()
})
.Concat(new [] { new ConvertedResults
{
VarX = "The sum is:",
VarY = (from y in model.Pairs select x.VarX).Sum().ToString()
});