How to display the overlay view over ListViewItem while tapping the item?
You can display the overlay view over the ListViewItem while tapping a button in the item. It can be achieved by binding Command from ViewModel and changing IsVisibile property of each item’s binding context(model).
C#:
public class BookInfoRepository
{
private ICommand tapcommand;
public ICommand TapCommand
{
get { return tapcommand; }
set { this.tapcommand = value; }
}
public BookInfoRepository()
{
TapCommand = new Command(OnButtonTapped);
}
private void OnButtonTapped(object obj)
{
var item = obj as BookInfo;
if(item.TemplateVisible)
{
item.TemplateVisible = false;
item.OveralyVisible = true;
}
else
{
item.TemplateVisible = true;
item.OveralyVisible = false;
}
}
}
XAML:
<ContentPage xmlns:syncfusion="clr-namespace:Syncfusion.ListView.XForms;assembly=Syncfusion.SfListView.XForms">
<syncfusion:SfListView x:Name="listView"
ItemsSource="{Binding BookInfo}"
ItemSize="100">
<syncfusion:SfListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid IsVisible="{Binding TemplateVisible}">
<Button Command="{Binding Path=BindingContext.TapCommand, Source={x:Reference Name=listView}}" CommandParameter="{Binding .}" Text="MayBe"/>
<Button Command="{Binding Path=BindingContext.TapCommand, Source={x:Reference Name=listView}}" CommandParameter="{Binding .}" Text="Yes"/>
<Button Command="{Binding Path=BindingContext.TapCommand, Source={x:Reference Name=listView}}" CommandParameter="{Binding .}" Text="No"/>
</Grid>
<Grid IsVisible="{Binding OveralyVisible}" BackgroundColor="#F5F6CE">
<Label Text="Undo"/>
<Label Text="Add"/>
</Grid>
</Grid>
</DataTemplate>
</syncfusion:SfListView.ItemTemplate>
</syncfusion:SfListView>
</ContentPage>
Run the application to renderer the following output.


Sample : OverlaySample