在 Xamarin.Forms 中使用 Syncfusion 的分页数据网格
Paged Datagrid using Syncfusion in Xamarin.Forms
我正在尝试使用 MVVM 架构和 Syncfusion 控件显示分页网格。我设法在 UWP 中使用 SfDataGrid 做到了这一点,但我似乎无法在 Xamarin.Forms.
中做到这一点
如果我不使用寻呼机,线条会出现在网格中。 (请看下面的代码)
<xForms:SfDataGrid
x:Name="datagrid"
AutoGenerateColumns="False"
ItemsSource="{Binding Lines}"
ColumnSizer="Star"
DefaultColumnWidth="200"
Columns="{Binding GridColumns, Mode=TwoWay}" />
但是当我尝试像这样使用寻呼机时:
<xForms:SfDataGrid
x:Name="datagrid"
AutoGenerateColumns="False"
ItemsSource="{Binding PagedSource, Source={x:Reference Name=dataPager}}"
ColumnSizer="Star"
DefaultColumnWidth="200"
Columns="{Binding GridColumns, Mode=TwoWay}" />
<dataPager:SfDataPager
Source="{Binding Lines, Mode=TwoWay}"
x:Name="dataPager"
Margin="5" Grid.Row="1" PageSize="7"
HorizontalOptions="FillAndExpand" />
我得到以下结果:Grid 是空的,没有抛出异常,我在输出中找不到任何绑定错误。
此外,我认为官方Syncfusion文档中的分页示例可能不完整,因为它声明必须在Grid的ItemsSource和Pager的Source之间进行绑定,但这并没有出现在xaml 那里提供了代码示例。
https://help.syncfusion.com/xamarin/sfdatagrid/paging?cs-save-lang=1&cs-lang=csharp
这是我遗漏的东西还是我需要使用代码隐藏才能使其工作?
感谢您使用 Syncfusion 产品。
我们检查了您的查询和共享代码,您需要设置绑定源,同时将值设置为“SfDataGrid.Columns”属性。请在下面找到相同的代码片段。
<ContentPage.BindingContext>
<local:ViewModel x:Name="viewModel" />
</ContentPage.BindingContext>
<ContentPage.Content>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<sfgrid:SfDataGrid x:Name="sfGrid"
Grid.Row="0"
AutoGenerateColumns="False"
ColumnSizer="Star"
DefaultColumnWidth="200"
ItemsSource="{Binding PagedSource, Source={x:ReferencedataPager}}"
Columns="{Binding GridColumns, Source={x:ReferenceviewModel}}"
/>
<sfpager:SfDataPager x:Name ="dataPager"
Margin="5"
HorizontalOptions="FillAndExpand"
Grid.Row="1"
PageSize="7"
HeightRequest ="50"
Source="{Binding OrdersInfo}"
/>
</Grid>
</ContentPage.Content>
我们已经准备好实现您要求的示例,您可以从下面link下载相同的示例。
示例 Link:http://www.syncfusion.com/downloads/support/directtrac/221044/ze/DataGridDemo-741889615
关于您对XAML代码“必须在Grid的ItemsSource和Pager的Source之间进行绑定”的文档的查询,我们将更新文档的XAML代码.
此致,
Vigneshkumar R
我正在尝试使用 MVVM 架构和 Syncfusion 控件显示分页网格。我设法在 UWP 中使用 SfDataGrid 做到了这一点,但我似乎无法在 Xamarin.Forms.
中做到这一点如果我不使用寻呼机,线条会出现在网格中。 (请看下面的代码)
<xForms:SfDataGrid
x:Name="datagrid"
AutoGenerateColumns="False"
ItemsSource="{Binding Lines}"
ColumnSizer="Star"
DefaultColumnWidth="200"
Columns="{Binding GridColumns, Mode=TwoWay}" />
但是当我尝试像这样使用寻呼机时:
<xForms:SfDataGrid
x:Name="datagrid"
AutoGenerateColumns="False"
ItemsSource="{Binding PagedSource, Source={x:Reference Name=dataPager}}"
ColumnSizer="Star"
DefaultColumnWidth="200"
Columns="{Binding GridColumns, Mode=TwoWay}" />
<dataPager:SfDataPager
Source="{Binding Lines, Mode=TwoWay}"
x:Name="dataPager"
Margin="5" Grid.Row="1" PageSize="7"
HorizontalOptions="FillAndExpand" />
我得到以下结果:Grid 是空的,没有抛出异常,我在输出中找不到任何绑定错误。
此外,我认为官方Syncfusion文档中的分页示例可能不完整,因为它声明必须在Grid的ItemsSource和Pager的Source之间进行绑定,但这并没有出现在xaml 那里提供了代码示例。
https://help.syncfusion.com/xamarin/sfdatagrid/paging?cs-save-lang=1&cs-lang=csharp
这是我遗漏的东西还是我需要使用代码隐藏才能使其工作?
感谢您使用 Syncfusion 产品。
我们检查了您的查询和共享代码,您需要设置绑定源,同时将值设置为“SfDataGrid.Columns”属性。请在下面找到相同的代码片段。
<ContentPage.BindingContext>
<local:ViewModel x:Name="viewModel" />
</ContentPage.BindingContext>
<ContentPage.Content>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<sfgrid:SfDataGrid x:Name="sfGrid"
Grid.Row="0"
AutoGenerateColumns="False"
ColumnSizer="Star"
DefaultColumnWidth="200"
ItemsSource="{Binding PagedSource, Source={x:ReferencedataPager}}"
Columns="{Binding GridColumns, Source={x:ReferenceviewModel}}"
/>
<sfpager:SfDataPager x:Name ="dataPager"
Margin="5"
HorizontalOptions="FillAndExpand"
Grid.Row="1"
PageSize="7"
HeightRequest ="50"
Source="{Binding OrdersInfo}"
/>
</Grid>
</ContentPage.Content>
我们已经准备好实现您要求的示例,您可以从下面link下载相同的示例。 示例 Link:http://www.syncfusion.com/downloads/support/directtrac/221044/ze/DataGridDemo-741889615
关于您对XAML代码“必须在Grid的ItemsSource和Pager的Source之间进行绑定”的文档的查询,我们将更新文档的XAML代码.
此致, Vigneshkumar R