Xamarin.forms Xamarin表单:如何从FlowListView中删除所选项目?

Xamarin.forms Xamarin表单:如何从FlowListView中删除所选项目?,xamarin.forms,Xamarin.forms,单击交叉图像时,我需要删除所选图片。为此,我在图像顶部添加了一个十字图像,并添加了点击事件。我正在FlowListView中显示图像 MainPage.xaml MainPage.xaml.cs 任何人,请建议一种从FlowListview中删除该图像的方法?首先,让您的收藏成为可观察的收藏 最后,在你的RemoveImage中 创建一个ObservableCollection,并在接收这些图像时将图像添加到其中 像这样: protected override void OnAppearing(

单击交叉图像时,我需要删除所选图片。为此,我在图像顶部添加了一个十字图像,并添加了点击事件。我正在FlowListView中显示图像

MainPage.xaml

MainPage.xaml.cs


任何人,请建议一种从FlowListview中删除该图像的方法?

首先,让您的收藏成为可观察的收藏

最后,在你的RemoveImage中


创建一个ObservableCollection,并在接收这些图像时将图像添加到其中

像这样:

protected override void OnAppearing()
    {
        base.OnAppearing(); :) 

        MessagingCenter.Subscribe<App, List<string>>((App)Xamarin.Forms.Application.Current, "ImagesSelected", (s, images) =>
        {
            for (int i =0;i< images.Count;i++)
            {
                _images.Add(images[i]);
            }
            listItems.FlowItemsSource = _images;
        });
    }

用你的建议编辑了这个问题。现在,从库中选择的图片未显示在UI中。我正在使用flowlistview在UI中显示图像。flowlistview是ICollection,所以是否还有其他修改悬而未决?我正在做一个从Gallery中选择多个图像的功能。从库中选择图片后,我需要删除图片功能。你能帮帮我吗?
 public partial class MainPage : ContentPage
 {
   ObservableCollection<string> _images = new ObservableCollection<string>();
    //List<string> _images = new List<string>();
    public MainPage()
    {
        InitializeComponent();
    }

    protected override void OnAppearing()
    {
        base.OnAppearing();

         //Change List and add ObservableCollection here
         MessagingCenter.Subscribe<App, ObservableCollection<string>>((App)Xamarin.Forms.Application.Current, "ImagesSelected", (s, images) =>
        {
            listItems.FlowItemsSource = images;
            _images = images;
        });
    }

    protected override void OnDisappearing()
    {
        base.OnDisappearing();
        MessagingCenter.Unsubscribe<App, List<string>>(this, "ImagesSelected");
    }

    public void RemoveImage(Object sender, EventArgs args)
    {
         var i = (Image)sender;
        _images.Remove(i.ClassId);
    }
  }
}
ObservableCollection<string> _images = new ObservableCollection<string>();
<Image ClassID="{Binding .}" ... />
public void RemoveImage(Object sender, EventArgs args)
{
    var i = (Image)sender;
    images.Remove(i.ClassID);
}
protected override void OnAppearing()
    {
        base.OnAppearing(); :) 

        MessagingCenter.Subscribe<App, List<string>>((App)Xamarin.Forms.Application.Current, "ImagesSelected", (s, images) =>
        {
            for (int i =0;i< images.Count;i++)
            {
                _images.Add(images[i]);
            }
            listItems.FlowItemsSource = _images;
        });
    }
public void RemoveImage(Object sender, EventArgs args)
{
    Image image = sender as Image;
    string obj = image.BindingContext as string;
    _images.Remove(obj);
}