Xamarin.forms Xamarin表单SFListview多选问题

Xamarin.forms Xamarin表单SFListview多选问题,xamarin.forms,syncfusion,Xamarin.forms,Syncfusion,Iam在我的xamarin表单应用程序中使用syncfusion SFListview。我在works fine中实现了listview单元格的multiselect。但我面临的问题是每次我们都需要保留itemcell进行选择。multiselect是否可能仅对第一个单元格有效,而对所有其他单元格有效 multiselect是否可能仅对第一个单元格有效,而对所有其他单元格有效 当然可以。如果您想要多选项目,我想接下来的步骤将完成一些关于多选项目的任务。下面的图片可能与您想要的类似 您可以在共享链

Iam在我的xamarin表单应用程序中使用syncfusion SFListview。我在works fine中实现了listview单元格的multiselect。但我面临的问题是每次我们都需要保留itemcell进行选择。multiselect是否可能仅对第一个单元格有效,而对所有其他单元格有效

multiselect是否可能仅对第一个单元格有效,而对所有其他单元格有效

当然可以。如果您想要多选项目,我想接下来的步骤将完成一些关于多选项目的任务。下面的图片可能与您想要的类似

您可以在共享链接中查看的内容,它提供了

解决方案一(一般可接受)

如果项目不介意在外部添加一个控件按钮,那么这将是最快捷、最简单的方法。即在
导航页面
中添加一个
工具栏项目
,使用它来控制是否可以单击多个选择而不跳到下一页

private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{

    if(0 == flag)
    {
        Navigation.PushAsync(new ContentPage());
    }

}
private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{

    if(0 == flag)
    {
        Navigation.PushAsync(new ContentPage());
    }

}
添加
工具栏项目

<ContentPage.ToolbarItems>
        <ToolbarItem x:Name="ToolbarItemsButton" Text="MultipleSelect" Clicked="Edit_Clicked"/>
</ContentPage.ToolbarItems>

<sync:SfListView x:Name="listView"
                 SelectionGesture="Hold"
                 SelectionMode="Multiple"
                 ItemTapped="ListView_ItemTapped"
                 SelectionBackgroundColor="Transparent"
                 IsStickyHeader="True" ItemSize="70">
 ...
可以判断何时可以切换到下一页

private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{

    if(0 == flag)
    {
        Navigation.PushAsync(new ContentPage());
    }

}
private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{

    if(0 == flag)
    {
        Navigation.PushAsync(new ContentPage());
    }

}

解决方案二(推荐)

SfListView
有一个方法是。不使用其他按钮也可以交换
选择模式

Xaml code different正在添加此方法
SfListView

int flag = 0;

private void Edit_Clicked(object sender, EventArgs e)
{
    if(0 == flag)
    {
        listView.SelectionGesture = TouchGesture.Tap;
        ToolbarItemsButton.Text = "Done";
        flag = 1;
    }
    else
    {
        ToolbarItemsButton.Text = "MultipleSelect";
        listView.SelectionGesture = TouchGesture.Hold;
        flag = 0;
    }
}
<sync:SfListView x:Name="listView"
                     SelectionGesture="Hold"
                     SelectionMode="Multiple"
                     ItemTapped="ListView_ItemTapped"
                     SelectionBackgroundColor="Transparent"
                     ItemHolding="ListView_ItemHolding" // ItemHolding
                     IsStickyHeader="True" ItemSize="70">
判断何时可以切换到下一页

private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{

    if(0 == flag)
    {
        Navigation.PushAsync(new ContentPage());
    }

}
private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{

    if(0 == flag)
    {
        Navigation.PushAsync(new ContentPage());
    }

}
解决方案三(此处不推荐)


通常,对于listview单元格的多选,我们将处理自定义单元格的模板,例如在模板中添加一个按钮。单击时,可以将项目标记为选中,并且项目的UI也可以自定义为选中时的样式。

感谢您的回复。我实现了这个。但selectionimage仅在我按住listview单元格时显示。我还有其他操作可以录制listview单元格。那么如何添加循环选择按钮呢?我该如何实现这一点?@AndroDevil您是否先尝试一下
SelectionMode=“Multiple”
?Jiang我提供了itemtrapped=“List\u Tapped”SelectionMode=“Multiple”selectionsive=“Hold”multipleselection功能正常。问题是每次我都要拿着单元格进行选择。我只想让multiselection像按住第一个单元格并点击所有其他单元格一样工作。listview的正常点击会转到我案例中的另一个屏幕好的,我明白了。如果你想保留一个项目,那么每个项目都会显示多选状态,其他只需要点击的项目可以被选中,而不会转到另一个页面。另外,我想在这种情况下,当你需要结束多选操作时,它还需要一种关闭多个选择的方法。对吗?@AndroDevil已更新。如果有帮助,请记住标记它。谢谢!