所以我有这个列表我需要从中选择项目,而且我无法使选择功能起作用,这是我的代码:
<syncfusion2:SfListView SelectionMode="Multiple"
SelectionGesture="Tap"
x:Name="bandSch"
SelectionBackgroundColor="#e8e8e8"
AbsoluteLayout.LayoutBounds="0,0.8,1,0.3"
AbsoluteLayout.LayoutFlags="All"
ItemSize="40"
ItemsSource="{Binding Source={local2:BandInfoRepository}, Path=BandInfo}">
<syncfusion2:SfListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="5,0,5,5" Orientation="Horizontal">
<Label Text="{Binding BandSchedule}"
TextColor="#00b5d1"
FontSize="12"
FontAttributes="Bold"
HorizontalOptions="FillAndExpand"
HorizontalTextAlignment="Center"
VerticalOptions="FillAndExpand"
VerticalTextAlignment="Center"
WidthRequest="50"
/>
<Button Text="Seleccionar"
FontSize="16"
TextColor="#00b5d1"
BackgroundColor="#e8e8e8"
Margin="5"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BorderRadius="14"
/>
</StackLayout>
</ViewCell>
</DataTemplate>
</syncfusion2:SfListView.ItemTemplate>
</syncfusion2:SfListView>
我很喜欢这方面的帮助,因为我无法选择单个或多个选项,我不知道为什么。
答案 0 :(得分:1)
由于SfListViewRenderer可能未初始化或渲染程序集可能未在渲染器项目中作为参考添加,因此报告的问题“未在SfListView中引发选择事件”。因此,我们建议引用以下UG文档链接来初始化SfListView渲染器和每个渲染器项目所需的程序集,以便在示例级别解决问题。
在每个平台中启动SfListView: https://help.syncfusion.com/xamarin/sflistview/getting-started#launching-the-sflistview-on-each-platform
每个平台所需的程序集: https://help.syncfusion.com/xamarin/sflistview/getting-started#sflistview-for-xamarinforms
如果您需要进一步的帮助,请告知我们。
的问候,
Dinesh Babu Yadav
答案 1 :(得分:1)
在与自己斗争之后,我发现它可能是导致这种情况的一系列问题。在我的场景中,我在iOS AppDelegate.cs文件中初始化了代码,但是我在数据模板中为项目设置了背景颜色。看来如果在项目上设置背景颜色,则选择操作不会更改背景。这使得它看起来好像选择不正确,实际上它只是在选择时不改变背景颜色。在我的情况下,我删除了项目背景,让选择背景改变选择时的背景颜色。这解决了我的问题。
在AppDelegate.cs中初始化渲染器时我想提一下,Visual Studio 2017 Community Edition中的自动完成并没有帮助我找到允许我调用的导入路径渲染器的初始化函数。经过大约30分钟的挫折后,我发现它在以下包装中。希望这将在未来的某个时间节省其他人。
使用顶部的声明:
using Syncfusion.ListView.XForms.iOS;
我的FinishedLaunching是什么样的。
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
// Call the INIT.
SfListViewRenderer.Init();
mainForms = new App();
LoadApplication(mainForms);
return base.FinishedLaunching(app, options);
}