|
<ContentPage.Resources>
<ResourceDictionary>
<local:GroupCaptionConverter x:Key="SummaryConverter" />
</ResourceDictionary>
</ContentPage.Resources>
<syncfusion:SfDataGrid.CaptionSummaryTemplate>
<DataTemplate>
<StackLayout Orientation="Horizontal" BackgroundColor="Gray">
<Button Text="Total Salary"
HorizontalOptions="Start"
VerticalOptions="Center"/>
<Label Text="{Binding Converter={StaticResource SummaryConverter}, ConverterParameter = {x:Reference dataGrid} }"
TextColor="White"
FontSize="Large"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Start"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<Label.Style>
<Style TargetType="Label">
<Setter Property="FontAttributes" Value="Bold, Italic" />
</Style>
</Label.Style>
</Label>
</StackLayout>
</DataTemplate>
</syncfusion:SfDataGrid.CaptionSummaryTemplate>
<syncfusion:SfDataGrid.CaptionSummaryRow>
<syncfusion:GridSummaryRow Name="CaptionSummary" ShowSummaryInRow="True"Title="Salary: {CaptionSummary}">
<syncfusion:GridSummaryRow.SummaryColumns>
<syncfusion:GridSummaryColumn Name="CaptionSummary"
Format="{}{Sum}"
MappingName="Freight"
SummaryType="DoubleAggregate" />
</syncfusion:GridSummaryRow.SummaryColumns>
</syncfusion:GridSummaryRow>
</syncfusion:SfDataGrid.CaptionSummaryRow>
// Converter
public class GroupCaptionConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
var data = value != null ? value as Group : null;
if (data != null)
{
SfDataGrid dataGrid = (SfDataGrid)parameter;
var summaryText = SummaryCreator.GetSummaryDisplayTextForRow((value asGroup).SummaryDetails, dataGrid.View);
return summaryText;
}
return null;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
} |
|
//ViewModel
private Command buttonClickedCommand;
public Command ButtonClickedCommand
{
get { return buttonClickedCommand; }
set { buttonClickedCommand = value; }
}
public ViewModel()
{
buttonClickedCommand = new Command(ButtonClick);
SetRowstoGenerate(50);
}
private void ButtonClick()
{
// Your Code
}
// Xaml
<syncfusion:SfDataGrid.CaptionSummaryTemplate>
<DataTemplate>
<StackLayout>
<Button x:Name="button"
Text="Total Salary"
HorizontalOptions="Start"
VerticalOptions="Center">
<b:Interaction.Behaviors>
<b:BehaviorCollection>
<b:EventToCommand EventName="Clicked"
Command="{Binding ButtonClickedCommand, Source={Reference viewModel}}"
CommandParameter="{x:Reference Name=button}"/>
</b:BehaviorCollection>
</b:Interaction.Behaviors>
</Button>
<Label Text="{Binding Converter={StaticResource SummaryConverter}, ConverterParameter = {x:Reference dataGrid} }"
TextColor="White"
FontSize="Large"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Start"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand">
<Label.Style>
<Style TargetType="Label">
<Setter Property="FontAttributes" Value="Bold, Italic" />
</Style>
</Label.Style>
</Label>
</StackLayout>
</DataTemplate>
</syncfusion:SfDataGrid.CaptionSummaryTemplate>
|