Постраничный DataGrid с использованием Syncfusion в Xamarin.Forms - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь отобразить постраничную сетку, используя архитектуру MVVM и элементы управления Syncfusion.Мне удалось сделать это, используя SfDataGrid в UWP, но я не могу понять, как это правильно в 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" />

я получаю следующий результат: Сетка пуста, исключение не выдаетсяи я не могу найти никаких ошибок привязки в выходных данных.

Кроме того, я думаю, что пример подкачки в официальной документации Syncfusion может быть неполным, так как в нем говорится, что должна быть сделана привязка между ItemsSource Grid иИсточник пейджера, но он не указан в представленном там примере кода xaml.

https://help.syncfusion.com/xamarin/sfdatagrid/paging?cs-save-lang=1&cs-lang=csharp

Это то, что мне не хватает, или мне нужно использовать код, чтобызаставить это работать?

1 Ответ

0 голосов
/ 21 ноября 2018

Спасибо за использование продукта 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> 

Мы подготовили образец для удовлетворения ваших требований, вы можете скачать его по ссылке ниже. Пример ссылки: http://www.syncfusion.com/downloads/support/directtrac/221044/ze/DataGridDemo-741889615

Что касается вашего запроса по документации кода XAML «Необходимо выполнить связывание между ItemsSource сетки и источником пейджера», мы обновим код XAML документации.

С уважением, Vigneshkumar R

...