【问题标题】:Xamarin Telerik RadListview doesn't bind in iOSXamarin Telerik RadListview 在 iOS 中不绑定
【发布时间】:2021-11-10 01:01:02
【问题描述】:

我有一个相当简单的列表视图,它显示 3 列,非常适合 Android。当我在 iOS 中运行它时,列表视图就在那里(我放了一个奇怪的颜色背景来验证它是否可见),但它没有任何项目。

<telerikDataControls:RadListView Grid.Row="2" x:Name="Locations" ItemsSource="{Binding CurrentLocationList}" 
                                 VerticalScrollBarVisibility="Always" VerticalOptions="FillAndExpand" ItemTapped="Locations_ItemTapped" BackgroundColor="Aqua">
    <telerikDataControls:RadListView.ItemTemplate>
        <DataTemplate>
            <telerikListView:ListViewTemplateCell>
                <telerikListView:ListViewTemplateCell.View>
                    <StackLayout Orientation="Horizontal" Margin="5,5,5,5">
                        <Label Text="{Binding Name}" FontSize="20" VerticalOptions="Center" />
                        <Label Text="{Binding Id}" HorizontalOptions="EndAndExpand" FontSize="20" VerticalOptions="Center" />
                        <local:GrayRadioButton x:Name="rbtSelectedLocation" IsChecked="{Binding Selected}" GroupName="grpLocation" />
                    </StackLayout>
                </telerikListView:ListViewTemplateCell.View>
            </telerikListView:ListViewTemplateCell>
        </DataTemplate>
    </telerikDataControls:RadListView.ItemTemplate>
</telerikDataControls:RadListView>

是否需要一些设置才能在 iOS 中运行?

谢谢。

我正在更新一些屏幕截图。

安卓:

iOS

【问题讨论】:

  • 就像 FreakyAli 所说,您可能在 StackLayout 父级中有 RadListView,或者它所在的 Grid.row 设置为 Height=Auto。在这里仔细阅读我的文章docs.telerik.com/devtools/xamarin/troubleshooting/…
  • 感谢您的回复。我已经验证这一切都是正确的。该控件位于分配给高度定义为“*”的行的网格内。我也将它设置为一个固定值,它没有任何区别。还有其他想法吗?
  • 另外,它适用于 Android。
  • 带有 BG 颜色故障排除的屏幕截图很有帮助,它可以验证 RLV 容器是否存在。如果删除 VerticalOptions=FillAndExpand 会发生什么?另外,将模板内容简化为一个标签(暂时消除自定义按钮)
  • 我删除了自定义控件和 VerticalOptions,结果相同(尽管这提醒我我也需要为 iOS 放置自定义指令!)。我会开票。

标签: xamarin.forms data-binding xamarin.ios telerik


【解决方案1】:

每当出现 Telerik 视图未显示的问题时,问题始终是包在本机或表单项目中不可用。

RadListView's 入门屏幕上,您可以找到项目需要的 DLL。

确保您的可移植项目具有以下 DLL:

Telerik.XamarinForms.Common.dll
Telerik.XamarinForms.DataControls.dll
Telerik.XamarinForms.Primitives.dll
Telerik.XamarinForms.SkiSharp.dll

而你的 iOS 项目需要具备以下条件:

Telerik.Xamarin.iOS.dll
Telerik.XamarinForms.Common.dll
Telerik.XamarinForms.DataControls.dll
Telerik.XamarinForms.Primitives.dll
Telerik.XamarinForms.SkiSharp.dll

另外请确保您阅读此警告:

警告:RadListView 控件提供 UI 虚拟化,此功能需要视觉父级提供垂直或水平空间。为避免破坏 UI 虚拟化或手势机制,请遵循以下规则: 不要将 RadListView 控件放在 StackLayout 中 不要将 RadListVew 放在 ScrollView 内 不要将 RadListVew 设置为 Grid RowDefinition Height="Auto" 有关这些布局的更多信息和解决方案,请查看控件未出现文章。

如果您有任何疑问,欢迎随时回复。

【讨论】:

  • 感谢您的回复。我已经验证这一切都是正确的。该控件位于分配给高度定义为“*”的行的网格内。我也将它设置为一个固定值,它没有任何区别。还有其他想法吗?
  • 您可以尝试将其放在不同的布局中吗?或者将其从网格中删除,看看是否适合您?
  • 我把它放在一个页面上,它是唯一具有相同结果的控件。
  • 你检查 dll 的东西了吗?
  • 是的,我做到了。所有参考资料都在那里。
【解决方案2】:

不知何故,我的 iOS 项目引用了便携式二进制文件,而不是 iOS 二进制文件。当我更正路径时,项目出现在列表视图中。

【讨论】:

    猜你喜欢
    • 2016-03-09
    • 2020-02-12
    • 2019-05-12
    • 2015-04-10
    • 2014-06-16
    • 2011-12-02
    • 2016-07-27
    • 2012-07-11
    • 1970-01-01
    相关资源
    最近更新 更多