Reputation: 55
<ListView Grid.ColumnSpan="2" Grid.Row="1" ItemsSource="{Binding TaskList}" SelectedItem="{Binding SelectedTask}" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell >
<StackLayout Orientation="Horizontal" >
<Label Text="{Binding TaskName}" />
<StackLayout Padding="150,0,0,0">
<Switch></Switch>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Hello, I am trying to get the selected item from a ListView
by using switch and could not be sure about how to handle.
Upvotes: 1
Views: 952
Reputation: 916
Following example shows how to bind data to switch inside the ListView and how to get toggled data on toggled event:
In xaml:
<ListView Grid.ColumnSpan="2" Grid.Row="1" ItemsSource="{Binding TaskList}" SelectedItem="{Binding SelectedTask}" >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell >
<StackLayout Orientation="Horizontal" >
<Label Text="{Binding TaskName}" />
<StackLayout Padding="150,0,0,0">
<Switch x:Name="chooseItem" VerticalOptions="Center"
IsToggled="{Binding IsToggled, Mode=TwoWay}"
Toggled="Switch_Toggled" />
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
In cs:
private void Switch_Toggled(object sender, ToggledEventArgs e)
{
try
{
var switchItem = (Switch)sender;
var selectedTask = (SelectedTask)switchItem.BindingContext;
//here you will get only toggled element model
}
catch (Exception ex)
{
}
}
Upvotes: 1