Xamarin.forms Xamarin表单SFListview多选问题
Iam在我的xamarin表单应用程序中使用syncfusion SFListview。我在works fine中实现了listview单元格的multiselect。但我面临的问题是每次我们都需要保留itemcell进行选择。multiselect是否可能仅对第一个单元格有效,而对所有其他单元格有效 multiselect是否可能仅对第一个单元格有效,而对所有其他单元格有效 当然可以。如果您想要多选项目,我想接下来的步骤将完成一些关于多选项目的任务。下面的图片可能与您想要的类似 您可以在共享链接中查看的内容,它提供了 解决方案一(一般可接受) 如果项目不介意在外部添加一个控件按钮,那么这将是最快捷、最简单的方法。即在Xamarin.forms Xamarin表单SFListview多选问题,xamarin.forms,syncfusion,Xamarin.forms,Syncfusion,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已更新。如果有帮助,请记住标记它。谢谢!