2017-11-22 9 views
1

したがって、私はトグルしたリストビュー内の項目を削除したいと思います。私はこのようなリストビューいる:今、私はそれがリストビューから削除されますが、ユーザーがポップアップを持っていなければならないことを、私が選択するために何かをクリックしたときにすることをC# - Xamarinフォームがトグルでリストビュー項目を削除します

Result

を先に最初のプロンプトが表示されアイテムを削除できるかどうかをユーザーが本当に確かめるかどうかを示します。ここで

は、私が今持っている私のコードです:

private async void Switch_Toggled(object sender, ToggledEventArgs e) 
     { 
      Tasks task = (sender as Switch).BindingContext as Tasks; 
      await ApiManager.UpdateTasksFromListAsync(task); 
     } 

これは単なるAPI上の値を更新します。しかし、どのように私はそれを削除/リストビューから非表示にすることができますか?

これは、XAMLコードです:

<ListView x:Name="lvwDetailPage" SeparatorVisibility="None"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <ViewCell> 
        <Grid> 
         <Grid.ColumnDefinitions> 
          <ColumnDefinition Width="70" /> 
          <ColumnDefinition /> 
         </Grid.ColumnDefinitions> 
         <Grid.RowDefinitions> 
          <RowDefinition /> 
         </Grid.RowDefinitions> 

         <Switch IsToggled="{Binding completed}" Grid.Column="0" Toggled="Switch_Toggled" /> 
         <Label Grid.Column="1" Text="{Binding title}" TextColor="#212121" VerticalOptions="Center" Margin="10,0" /> 

        </Grid> 
       </ViewCell> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
+0

リストビューが – Jason

+0

を使用していると私はこれをどのように行うことができますのItemsSourceからそれを削除しますか? – Robin

+0

'lvwDetailPage'' ListView.ItemSource'に何を割り当てているのかを確認する必要があります。 'List'を直接またはバインディングを使って割り当てていますか? – hvaughan3

答えて

4
ObservableCollection<Tasks> TaskList; 

    private async Task GetData(long id) 
    { 
     List<Tasks> tasks = await ApiManager.GetTasksFromListAsync(id); 

     TaskList = new ObservableCollection<Tasks>(tasks); 

     lvwDetailPage.ItemsSource = TaskList; 

     lvwDetailPage.ItemSelected += LvwDetailPage_ItemSelected; 
    } 

    private async void Switch_Toggled(object sender, ToggledEventArgs e) 
    { 
     Tasks task = (sender as Switch).BindingContext as Tasks; 

     if (task != null) 
     { 
      await ApiManager.UpdateTasksFromListAsync(task); 
      TaskList.Remove(task); 
     }   
    } 
+0

私は 'ObservableCollection 'を持っていません。ここでは、このコードを使ってデータを取得します:https://pastebin.com/x9qa9nQfとクラス 'Tasks'にはJson形式(APIから) 。 – Robin

+0

lvwDetailPage.ItemsSource =新しいObservableCollection (タスク); – Jason

+0

それでも、私は変換に関する問題があります:http://prntscr.com/hdw0qq – Robin

関連する問題