自定义 ListView 无法从列表中删除项目

Custom ListView not able to remove item from list

我有两个自定义 listView,例如 ListView A 和 ListView B。当我在 ListView A 中单击项目时,ListView A 包含项目列表,它将在特定 item/data 正在填充到 ListView B 中,它工作正常。但是当我取消选中 ListView A 中的项目并以类似的方式尝试从 ListView B 中删除该项目时,它不起作用。

从带有复选框的自定义 ListView 中删除项目时 未从 ListView 中删除项目。但我可以添加该项目但无法删除。

ListView 控件在特定条件下的 onitemtap 事件我正在尝试从列表中添加或删除项目。

public class TestIds
 {
   ObservableCollection<ListViewModel> ListItems { get; set; } = new ObservableCollection<ListViewModel>()
     {
     };

  private void ListView_ItemTappedEventArgs(ItemTappedEventArgs itemTapped)
    {
       items = itemTapped.Item as ListViewModel;
       if (items.IsSelected)
          {
            items.IsSelected = false;
            BindRemoveItem(items.ID, items.IsSelected);
           }
           else
            {
             items.IsSelected = true;
             BindRemoveItem(items.ID, items.IsSelected);
             }
     }

    //this is my code for binding and removing data from listView

  private void BindRemoveItem(string id, bool isChecked)
    {
      IDManager.GetIDList(list =>
        {
         foreach (IDEntities item in list)
          {
           if (isChecked == true)
            {
             ListItems.Add(new ListViewModel { Text = item.IDDescription + " (" + item.IDCodes + ")", ID = item.IDCodeID });
             }
             else
             {
               ListItems.Remove(new ListViewModel { Text = item.IDDescription + " (" + item.IDCodes + ")", ID = item.IDCodeID };
              }
            }
        CustomControlClass.ListView.ItemsSource = ListItems;
        }, id);
     }                  
}

此处 ListItems.Remove 我无法从列表视图中添加项目。

我想我已经找到了问题所在,尽管我不确定我是否正确理解了你的问题。

您正试图在此处删除一个新对象

ListItems.Remove(new ListViewModel { Text = item.IDDescription + " (" + item.IDCodes + ")", ID = item.IDCodeID };

参照比较,最后没有去掉任何东西。

你应该

ListItems.Remove(ListItems.FirstOrDefault(i => i.ID == item.IDCodeID))

假设 IDCodeID 是您的对象的唯一标识符,如果不是,那么您可能应该考虑其他方式来获取对要删除的对象的引用