|
<sfgrid:GridTextColumn MappingName="OrderID" >
<sfgrid:GridTextColumn.HeaderTemplate>
<DataTemplate>
<StackLayout>
<Label BindingContext="{x:Reference viewModel}" Text="OrderID" TextColor="{Binding HeaderTextColor}" HorizontalOptions="Center" VerticalOptions="Center" HeightRequest="50"/>
<BoxView BindingContext="{x:Reference viewModel}" Color="{Binding HeaderIndicatorColor}" HeightRequest="2" />
</StackLayout>
</DataTemplate>
</sfgrid:GridTextColumn.HeaderTemplate>
// Code behind
public MainPage()
{
InitializeComponent();
dataGrid.SortColumnsChanging += DataGrid_SortColumnsChanging;
dataGrid.GridStyle = new CustomStyle();
}
private void DataGrid_SortColumnsChanging(object sender, DataGridSortColumnsChangingEventArgs e)
{
if(e.AddedItems[0].SortDirection == Syncfusion.Data.ListSortDirection.Ascending)
{
viewModel.HeaderTextColor = Color.Blue;
viewModel.HeaderIndicatorColor = Color.Blue;
}
else
{
viewModel.HeaderTextColor = Color.Black;
viewModel.HeaderIndicatorColor = Color.Transparent;
}
}
// Custom Style
public class CustomStyle: DataGridStyle
{
public CustomStyle()
{
}
public override ImageSource GetHeaderSortIndicatorDown()
{
return ImageSource.FromResource("DataGridDemo.BlackTri.png");
}
public override ImageSource GetHeaderSortIndicatorUp()
{
return ImageSource.FromResource("DataGridDemo.blueTri.png");
}
} |
|
public partial class MainPage : ContentPage, INotifyPropertyChanged
{
public MainPage()
{
InitializeComponent();
dataGrid.CellRenderers.Remove("HeaderView");
dataGrid.CellRenderers.Add("HeaderView", new HeaderCellRenderer());
}
}
public class HeaderCellRenderer: GridHeaderCellRenderer
{
public override void OnInitializeDisplayView(DataColumnBase dataColumn, ContentView view)
{
base.OnInitializeDisplayView(dataColumn, view);
((view as BorderView).Content as Grid).ColumnDefinitions[1].Width = new GridLength(20, GridUnitType.Absolute);
}
} |