1

在 Xamarin Forms (Portable) 项目中,当我将 RadlistView 放在第一页时,我得到了绑定列表,该列表不会在 Android 中呈现模板。我没有检查其他平台。在这种情况下,第二页中的 RadListView 呈现正常。

RadListView 的第一页

截屏

带有 RadListView 的第二页

截屏

但是,如果我用 Xamarin.Forms.ListView 替换第一页中的 radlistview,它显示正常,但在第二页 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# 文件未提供,因为它使用了来自另一个项目的 web api,也使用虚拟源具有相同的效果。作为使用的来源

可观察集合

4

1 回答 1

0

我忘了在发布之前添加,我更新了 Telerik Xamarin 平台。清理解决方案后,删除 bin 和 obj 文件夹并重新生成项目即可解决。

于 2018-12-14T05:54:16.233 回答