SlideOverKit:不能将类型为“ SlideMenuView”的值添加到类型为“ IList”的集合或字典中

时间:2018-09-26 11:41:50

标签: c# xamarin xamarin.forms xamarin.android cross-platform

我正在借助NuGet Gallery中可用的BottomSheet库在Xamarin.forms中实现SlideOverKit。我已参考了GitHub上可用的示例。我的实现细节如下所述

实施细节:

<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
        xmlns:local="clr-namespace:SmartApp.CustomControls"
        xmlns:y="clr-namespace:SlideOverKit;assembly=SlideOverKit"
        Title="Opportunities"
         x:Class="SmartApp.OpportunitiesPage">
   <TabbedPage.ToolbarItems>
       <!--Menu Item here-->
   </TabbedPage.ToolbarItems>
   <ContentPage Title="Tab 1" >
       <!--Tab 1 details here-->
   </ContentPage>
   <y:SlideMenuView >
       <!--Tab 2 details here-->
   </y:SlideMenuView>
</TabbedPage>

在上述实现中,我遇到了编译时错误,即“无法将'SlideMenuView'类型的值添加到'IList'类型的集合或字典中”,而且y:SlideMenuView不支持{ {1}}属性,这是另一个问题。我该如何解决这个问题?请帮忙。

1 个答案:

答案 0 :(得分:0)

SlideMenuView必须放在MenuContainerPage中,而不是ContentPage中。

请参见他们的示例in c#。在XAML中也可以这样做:
只需将您的ContentPage替换为y:MenuContainerPage,或创建一个继承自MenuContainerPage的自定义页面并将其用作父页面。

此信息也可以在their website上找到:

  

继承
  包含SlideMenuView的页面必须继承   MenuContainerPage或IMenuContainerPage。您的页面可以继承   MenuContainerPage,这样您就可以设置SlideMenuView属性和   它会工作。

     

如果您的页面需要从解决方案中的其他基础页面继承,   您必须实现IMenuContainerPage接口,并且需要创建   每个平台的渲染器页面。不会太难,只需复制   示例中的代码,您可以按照示例中的SlideDownMenuPage页面进行操作   代码来做到这一点。