We use cookies to give you the best experience on our website. If you continue to browse, then you agree to our privacy policy and cookie policy.
Unfortunately, activation email could not send to your email. Please try again.

Binding Using DataTable

Thread ID:

Created:

Updated:

Platform:

Replies:

125258 Aug 3,2016 06:15 AM Aug 4,2016 09:17 AM Xamarin.Forms 1
loading
Tags: SfDataGrid
Joseph Canada
Asked On August 3, 2016 06:15 AM

Hi I would to ask help regarding binding data to the data grid. On the program we are creating, we have this dynamic grid columns which requires manually setting the columns.

Just to give you an info, the data to bind does not have any "Class" to be used as an ObservableCollection, instead, we are manually creating the DataTable that contains the generated data.

The columns for this is also dynamic which comes from a source information from the server. So basically, the data grid will contain different view of columns depending on the data populated.

How can you help me to make this thing works. We are using SfDataGrid as this is the only component which we can really use on our project.

A simple example below which I hope can give you idea how can you possibly help me.

Page.xaml.cs
private void BuildGrid()
{
lock (_lock)
            {
                dataGrid.Columns.Clear();

                foreach (GridColumnDefinition colDef in App.CurrentApp.DynamicGridColumns)
                {
                    GridTextColumn textColumn = new GridTextColumn();
                    textColumn.HeaderText = colDef.HeaderText;
                    textColumn.MappingName = colDef.Name;
                    textColumn.LineBreakMode = LineBreakMode.WordWrap;
                    textColumn.TextAlignment = TextAlignment.Center;

                    dataGrid.Columns.Add(textColumn);
                }
            }
}

PageViewModel.cs
var bindTask = GenerateDataTable(dynamicSRC); *
GridData = await bindTask; **

* dynamicSRC - is the dynamic source contains
** GridData - is the DataTable


Page.xaml

<syncfusion:SfDataGrid x:Name="dataGrid" ItemsSource="{Binding GridData}" SelectionMode="Single" ColumnSizer="Star" AutoGenerateColumns="False" RowHeight="55" HeaderRowHeight="50" ScrollingMode="PixelLine"
                                   Grid.Column="0" Grid.Row="2" Grid.ColumnSpan="2" VerticalOptions="FillAndExpand">
    </syncfusion:SfDataGrid>

After we have successfully populated the DataTable, it seems that there is nothing happen to the datagrid. No Columns, No Rows, nothing at all. We will be glad at most if you can help us regarding this problem. We just really can't figure out how to successfully work this.


Thank you.

Divakar Subramaniam [Syncfusion]
Replied On August 4, 2016 09:17 AM

Hi Joseph, 
Thanks for contacting Syncfusion Support. 
We have analyzed your query. If your requirement is to bind a DataTable collection to SfDataGrid, then it is not possible as Xamarin.Forms does not have support to System.Data in PCL. Thus it is not possible to bind a DataTable collection in SfDataGrid for Xamarin.Forms. 
In case if you are trying to bind dynamic objects in a table format for which you had meant as DataTable, we regret to inform you that Xamarin.Forms does not support “Dynamic Binding. It is a limitation in Xamarin.Forms without a JIT. Please refer the below Bugzilla link for more details.  
However, we have support for Dynamic Binding in our Xamarin.Android control and we would suggest you to try it if your requirement is for Android alone. 
 
Regards, 
Divakar. 


CONFIRMATION

This post will be permanently deleted. Are you sure you want to continue?

Sorry, An error occured while processing your request. Please try again later.

You are using an outdated version of Internet Explorer that may not display all features of this and other websites. Upgrade to Internet Explorer 8 or newer for a better experience.

;