Возможен ли множественный выбор, содержащий только первую ячейку и касающийся всех остальных ячеек?
Конечно, можно сделать это . Если вам нужны элементы с множественным выбором, я думаю, что следующие шаги позволят выполнить некоторые задачи с элементами с несколькими элементами. Изображение ниже может выглядеть так, как вам нужно.
Вы можете посмотреть содержание этой главы в ссылке на общий ресурс и образец кода , который он предоставляет.
Решение первое :( В целом приемлемо)
Если проект не возражает против добавления кнопки управления снаружи, это будет самый быстрый и простой способ. То есть добавить ToolbarItems
в NavigationPage
, используйте его, чтобы контролировать, можете ли вы щелкнуть несколько вариантов выбора без перехода на следующую страницу.
Добавить ToolbarItems
:
<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">
...
В ContentPage
, добавить флаг к судье SelectionMode
из ListView
.
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;
}
}
Может судить, когда вы можете перейти на следующую страницу.
private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{
if(0 == flag)
{
Navigation.PushAsync(new ContentPage());
}
}
Решение второе :( Рекомендуется)
SfListView
имеет метод ItemHolding . Не используя другую кнопку также можно обменять SelectionMode
.
Xaml код другой добавляет этот метод SfListView
.
<sync:SfListView x:Name="listView"
SelectionGesture="Hold"
SelectionMode="Multiple"
ItemTapped="ListView_ItemTapped"
SelectionBackgroundColor="Transparent"
ItemHolding="ListView_ItemHolding" // ItemHolding
IsStickyHeader="True" ItemSize="70">
Когда OnHolding может что-то сделать здесь:
private void ListView_ItemHolding(object sender, ItemHoldingEventArgs e)
{
if (0 == flag)
{
listView.SelectionGesture = TouchGesture.Tap;
ToolbarItemsButton.Text = "Done";
flag = 1;
}
else
{
listView.SelectionGesture = TouchGesture.Hold;
ToolbarItemsButton.Text = "MultipleSelect";
flag = 0;
}
}
Судите, когда вы можете перейти на следующую страницу.
private void ListView_ItemTapped(object sender, Syncfusion.ListView.XForms.ItemTappedEventArgs e)
{
if(0 == flag)
{
Navigation.PushAsync(new ContentPage());
}
}
Решение Три :( Здесь не рекомендуется)
Как правило, для многократного выбора ячейки просмотра списка мы будем обрабатывать шаблон пользовательской ячейки, например, добавляя кнопку в шаблон. При нажатии элемент может быть помечен как выбранный, а пользовательский интерфейс элемента также может быть настроен как Стиль при выборе.