sylmz
sylmz

Reputation: 55

How to get the selected item from a listview by using switch?

   <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

Answers (1)

abpatil
abpatil

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

Related Questions