Странное поведение Telerik Xamarin RadListView

В проекте Xamarin Forms (Portable), когда я помещаю RadlistView на первую страницу, я получаю связанный список, который не отображает шаблон в Android. Я не проверял другие платформы. В этом случае RadListView на второй странице отображается нормально.

Первая страница с RadListView

Снимок экрана

Вторая страница с RadListView

Снимок экрана

Но если я заменю radlistview на первой странице на Xamarin.Forms.ListView, он отобразится нормально, но на второй странице RadListView отобразится без шаблона.

Первая страница с Xamarin ListView

Снимок экрана

Вторая страница с утерянным шаблоном RadListView

Снимок экрана

Код первой страницы ниже:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage x:Name="Page" 
             xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:telerikPrimitives="clr-namespace:Telerik.XamarinForms.Primitives;assembly=Telerik.XamarinForms.Primitives"
             xmlns:telerikListView="clr-namespace:Telerik.XamarinForms.DataControls.ListView;assembly=Telerik.XamarinForms.DataControls"

             xmlns:telerikDataControls="clr-namespace:Telerik.XamarinForms.DataControls;assembly=Telerik.XamarinForms.DataControls"
             xmlns:viewmodels="clr-namespace:InRestoApp.ViewModels"
             xmlns:behaviors="clr-namespace:InRestoApp.Behaviors"
             xmlns:helpers="clr-namespace:InRestoApp.Helpers"

             x:Class="InRestoApp.Views.HallsPage">

    <ContentPage.Padding>
        <OnPlatform x:TypeArguments="Thickness">
            <On Platform="iOS" Value="10, 20, 10, 0" />
            <On Platform="Android, UWP" Value="10, 0" />
        </OnPlatform>
    </ContentPage.Padding>
    <ContentPage.Resources>
        <helpers:InvertBoolConverter x:Key="invertBoolConverter"/>
    </ContentPage.Resources>
   <Grid HeightRequest="800">

        <Grid.RowDefinitions>
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>

        <telerikDataControls:RadListView x:Name="ItemsListView" SelectionMode="Single" HeightRequest="800"
                                         ItemsSource="{Binding Halls}"
                                         ItemTapped="ListView_OnItemTapped">


            <telerikDataControls:RadListView.LayoutDefinition>
                <telerikListView:ListViewLinearLayout VerticalItemSpacing="0" />
            </telerikDataControls:RadListView.LayoutDefinition>
            <telerikDataControls:RadListView.ItemTemplate>
                <DataTemplate>
                    <telerikListView:ListViewTemplateCell>
                        <telerikListView:ListViewTemplateCell.View>
                            <Frame  CornerRadius="5" HasShadow="True" OutlineColor="#4488F6"   Padding="10" Margin="10">
                                <StackLayout Orientation="Horizontal">
                                    <Label Text="{Binding HallCode}" FontSize="Large" VerticalOptions="StartAndExpand" />
                                        <Label Text="{Binding HallName}"  FontSize="Medium"  VerticalOptions="CenterAndExpand" />

                                </StackLayout>
                            </Frame>

                        </telerikListView:ListViewTemplateCell.View>
                    </telerikListView:ListViewTemplateCell>
                </DataTemplate>
            </telerikDataControls:RadListView.ItemTemplate>
        </telerikDataControls:RadListView>


    </Grid>
</ContentPage>

Второй вид XAML ниже (используется ContentView, поскольку он открывается как слайдер)

<?xml version="1.0" encoding="UTF-8"?>
<ContentView xmlns="http://xamarin.com/schemas/2014/forms" 
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:flv="clr-namespace:DLToolkit.Forms.Controls;assembly=DLToolkit.Forms.Controls.FlowListView"
              xmlns:telerikListView="clr-namespace:Telerik.XamarinForms.DataControls.ListView;assembly=Telerik.XamarinForms.DataControls"
             xmlns:helpers="clr-namespace:InRestoApp.Helpers"
             xmlns:telerikDataControls="clr-namespace:Telerik.XamarinForms.DataControls;assembly=Telerik.XamarinForms.DataControls"
             xmlns:ffimageloading="clr-namespace:FFImageLoading.Forms;assembly=FFImageLoading.Forms"
             xmlns:telerikInput="clr-namespace:Telerik.XamarinForms.Input;assembly=Telerik.XamarinForms.Input"
             x:Name="productView"
             x:Class="InRestoApp.Views.ProductsView">
    <ContentView.Resources>
        <helpers:ImageBytesConverter x:Key="imageBytesConverter"/>
        <helpers:TempConverter x:Key="tempConverter"/>
        <helpers:ImageFileToImageSourceConverter x:Key="imageFileToImageSourceConverter"/>

    </ContentView.Resources>
    <ContentView.Content>


            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="4*"/>
                    <ColumnDefinition Width="6*"/>
                </Grid.ColumnDefinitions>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="40"/>
                        <RowDefinition Height="*"/>
                    </Grid.RowDefinitions>
                    <Frame  CornerRadius="2" HasShadow="True" OutlineColor="Aquamarine" Padding="10"  Margin="2">
                        <Image x:Name="btnClear"  Source="clear_icon.png" HeightRequest="50" WidthRequest="50" >
                            <Image.GestureRecognizers>
                                <TapGestureRecognizer Command="{Binding Path=BindingContext.ClearProductsFilterCommand, Source={x:Reference productView}}"  CommandParameter="{Binding .}" />
                            </Image.GestureRecognizers>
                        </Image>
                    </Frame>
                <telerikDataControls:RadListView x:Name="CategoriesListView" Grid.Row="1" SelectedItem="{Binding SelectedProductCategory, Mode=TwoWay}" SelectionMode="Single"
                                         ItemsSource="{Binding ProductCategories}">
                        <telerikDataControls:RadListView.LayoutDefinition>
                            <telerikListView:ListViewLinearLayout VerticalItemSpacing="0" />
                        </telerikDataControls:RadListView.LayoutDefinition>
                        <!--<telerikDataControls:RadListView.ItemStyle>
                            <telerikListView:ListViewItemStyle BackgroundColor="Transparent" BorderLocation="None"/>
                        </telerikDataControls:RadListView.ItemStyle>-->
                        <telerikDataControls:RadListView.ItemTemplate>
                            <DataTemplate>
                                <telerikListView:ListViewTemplateCell>
                                    <telerikListView:ListViewTemplateCell.View>
                                        <Frame  CornerRadius="10" HasShadow="True" OutlineColor="#4488F6"   Padding="10" Margin="10" >
                                            <StackLayout Orientation="Horizontal">
                                                <StackLayout>

                                                    <ffimageloading:CachedImage HeightRequest="70" Aspect="AspectFill" WidthRequest="70" Margin="5"
                            DownsampleHeight="70" DownsampleUseDipUnits="false" 
                            LoadingPlaceholder="image_loading.png" ErrorPlaceholder="image_error.png"
                            Source="{Binding FileName, Converter={StaticResource imageFileToImageSourceConverter}}"/>

                                                    <Label Text="{Binding ProductCategoryName}"  FontSize="Medium"  VerticalOptions="CenterAndExpand" />
                                                </StackLayout>
                                            </StackLayout>
                                        </Frame>
                                    </telerikListView:ListViewTemplateCell.View>
                                </telerikListView:ListViewTemplateCell>
                            </DataTemplate>
                        </telerikDataControls:RadListView.ItemTemplate>
                    </telerikDataControls:RadListView>

                </Grid>

            <telerikDataControls:RadListView x:Name="ProductsListView" Grid.Column="1" SelectedItem="{Binding SelectedProduct, Mode=TwoWay}" SelectionMode="Single"
                                         ItemsSource="{Binding Products}">


                    <telerikDataControls:RadListView.LayoutDefinition>
                        <telerikListView:ListViewLinearLayout VerticalItemSpacing="0" />
                    </telerikDataControls:RadListView.LayoutDefinition>

                    <telerikDataControls:RadListView.ItemTemplate>
                        <DataTemplate>

                            <telerikListView:ListViewTemplateCell>
                                <telerikListView:ListViewTemplateCell.View>
                                    <Frame  CornerRadius="10" HasShadow="True" OutlineColor="#4488F6" Margin="5" HeightRequest="110" >
                                        <Grid>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="70"/>
                                            <RowDefinition Height="20"/>
                                            <RowDefinition Height="20"/>
                                        </Grid.RowDefinitions>

                                                <ffimageloading:CachedImage HeightRequest="70" Aspect="AspectFit" WidthRequest="70" Margin="2"
                            DownsampleHeight="50" DownsampleUseDipUnits="false" 
                            LoadingPlaceholder="image_loading.png" ErrorPlaceholder="image_error.png"
                            Source="{Binding FileName, Converter={StaticResource imageFileToImageSourceConverter}}"/>
                                                <Label Text="{Binding RestProductNameEntity.ProductName}"  FontSize="Medium"  VerticalOptions="CenterAndExpand" Grid.Row="1" />


                                        <telerikInput:RadNumericInput   Value="{Binding Quantity, Mode=TwoWay}" Grid.Row="2" HeightRequest="20" />

                                        </Grid>
                                    </Frame>
                                </telerikListView:ListViewTemplateCell.View>
                            </telerikListView:ListViewTemplateCell>
                        </DataTemplate>
                    </telerikDataControls:RadListView.ItemTemplate>
                </telerikDataControls:RadListView>
            </Grid>
    </ContentView.Content>
</ContentView>

c# не предоставляется, потому что он использовал веб-API из другого проекта, также использование фиктивного источника имеет тот же эффект. В качестве источника используется

ObservableCollection


person Lotusv    schedule 11.12.2018    source источник
comment
Вам нужно показать свой XAML, исходный код и просмотреть код модели, IOW можете ли вы предоставить MCVE (минимальный, полный, проверяемый пример? stackoverflow.com /help/mcve   -  person jgoldberger - MSFT    schedule 12.12.2018
comment
На самом деле я думаю, что это ошибка, и такое поведение не связано с неправильным кодом. но в любом случае, если это полезно для вас, я добавил код из XAML.   -  person Lotusv    schedule 12.12.2018
comment
Также имейте в виду, что я экспериментировал с шаблонами элементов, и даже я использовал несвязанный шаблон элементов со статическим текстом метки, это то же самое поведение.   -  person Lotusv    schedule 12.12.2018
comment
Страница 1 и страница 2 — это две разные модели просмотра. В целях помочь. вам действительно нужно предоставить MCVE, как было запрошено ранее. Без этого невозможно определить, является ли это ошибкой или проблемой в коде. И если вы так уверены, что это ошибка, почему бы просто не обратиться в службу поддержки Telerik? telerik.com/support   -  person jgoldberger - MSFT    schedule 12.12.2018


Ответы (1)


Забыл добавить, что перед выпуском обновил платформу Telerik Xamarin. После чистого решения, удаления папок bin и obj и перестройки проекта, он решил.

person Lotusv    schedule 14.12.2018