[XAML]
<ContentPage.Resources> <ResourceDictionary>
<DataTemplate x:Key="CellTemplate" x:Name="CellTemplate">
<Grid Margin="1,1,1,0" >
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"></ColumnDefinition>
<ColumnDefinition Width="100"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Row="0" Grid.Column="0"
Text="{Binding [1]}"
Margin="3,0,0,0"
VerticalOptions="Center"
HorizontalOptions="Start">
<Label.GestureRecognizers>
<TapGestureRecognizer Tapped="TapGestureRecognizer_Tapped"/>
</Label.GestureRecognizers>
</Label>
<CheckBox Grid.Row="0" Grid.Column="1"
IsChecked="{Binding [2]}"
CheckedChanged="CheckBox_CheckedChanged"
HorizontalOptions="Center" />
</Grid>
</DataTemplate>
</ResourceDictionary>
</ContentPage.Resources>
[.CS] SfDataGrid dataGrid = new SfDataGrid(); dataGrid.AutoGenerateColumns = false;
dataGrid.VerticalOverScrollMode = VerticalOverScrollMode.None;
dataGrid.ItemsSource = viewModel.Data;
dataGrid.ColumnSizer = ColumnSizer.Auto;
int columnNumber = 0;
for(int i=0;i<2;i++)
{
GridTemplateColumn gridTemplate = new GridTemplateColumn();
gridTemplate.MappingName = $"[{columnNumber}]";
gridTemplate.HeaderText = viewModel.Data.Columns[columnNumber].ColumnName; gridTemplate.HeaderFontAttribute = FontAttributes.Bold;
gridTemplate.HeaderTextAlignment = TextAlignment.Center;
gridTemplate.HeaderCellTextSize = 14;
gridTemplate.BindingContextChanged += GridTemplate_BindingContextChanged;
gridTemplate.CellTemplate = (DataTemplate)Content.FindByName("CellTemplate");
gridTemplate.LineBreakMode = LineBreakMode.CharacterWrap;
dataGrid.Columns.Add(gridTemplate);
columnNumber++;
}
this.stack.Children.Add(dataGrid); |
SfDataGrid dataGrid = new SfDataGrid();
dataGrid.AutoGenerateColumns = false;
dataGrid.VerticalOverScrollMode = VerticalOverScrollMode.None;
dataGrid.ItemsSource = viewModel.Data;
dataGrid.ColumnSizer = ColumnSizer.Auto;
int columnNumber = 0;
for(int i=0;i<2;i++)
{
GridTemplateColumn gridTemplate = new GridTemplateColumn();
gridTemplate.MappingName = $"[{columnNumber}]";
gridTemplate.HeaderText = viewModel.Data.Columns[columnNumber].ColumnName;
gridTemplate.HeaderFontAttribute = FontAttributes.Bold;
gridTemplate.HeaderTextAlignment = TextAlignment.Center;
gridTemplate.HeaderCellTextSize = 14;
gridTemplate.CellTemplate = GetTemplate(i);
gridTemplate.LineBreakMode = LineBreakMode.CharacterWrap;
dataGrid.Columns.Add(gridTemplate);
columnNumber++;
}
this.stack.Children.Add(dataGrid);
}
private DataTemplate GetTemplate(int index)
{
DataTemplate cellTemplate = new DataTemplate(() =>
{
Label label;
label = new Label();
label.SetBinding(Label.TextProperty, new Binding($"[{index}]"));
return label;
});
return cellTemplate;
} |