我正在为我的Xamarin iOS项目使用UICollectionView。
说,我显示7个CollectionViewCell,每个CollectionViewCell都有Image和Button。如果单击该按钮,我想删除该图像,并希望其余的单元格向上移动一个。 示例:如果我有7个单元格并且单击第5个单元格上的按钮,我想删除第5个单元格上的图像,它应该显示先前显示在第6个单元格上的图像,第6个单元格应该显示先前显示的图像第7个细胞。
当我删除图片并使用' collectionview.ReloadData()'它不起作用。我可以看到图像在后台删除但没有更新到集合视图。
有人可以提供建议吗?
更新
每个Cell都有Image和一个按钮。按钮单击我想删除图像,并希望其余单元格向上移动。
细胞
private void DeleteImage(object sender, EventArgs e)
{
//imageNum is the cellIndex num
newViewModel.DeletePhotoCommand.Execute(imageNum);
var path1 = collectionView.GetIndexPathsForSelectedItems();
collectionView.ReloadItems(path1);
}
视图模型
private readonly ICommand deletePhotoCommand;
public ICommand DeletePhotoCommand { get { return deletePhotoCommand; } }
public NewViewModel()
{
deletePhotoCommand = new BaseMvxCommand<int>(DeletePhoto);
}
public string Photo1{get; set; }
public string Photo2{get; set; }
public string Photo3{get; set; }
public string Photo4{get; set; }
public string Photo5{get; set; }
public void DeletePhoto(int imageNum)
{
imageNum++;
switch (imageNum)
{
case 1:
if (Photo1 != null)
{
Photo1 = Photo2;
Photo2 = Photo3;
Photo3 = Photo4;
Photo4 = Photo5;
Photo5 = null;
}
break;
case 2:
if (Photo2 != null)
{
Photo2 = Photo3;
Photo3 = Photo4;
Photo4 = Photo5;
Photo5 = null;
}
break;
case 3:
if (Photo3 != null)
{
Photo3 = Photo4;
Photo4 = Photo5;
Photo5 = null;
}
break;
case 4:
if (Photo4 != null)
{
Photo4 = Photo5;
Photo5 = null;
}
break;
case 5:
Photo5 = null;
break;
}
RaisePropertyChanged(() => Photo1);
RaisePropertyChanged(() => Photo2);
RaisePropertyChanged(() => Photo3);
RaisePropertyChanged(() => Photo4);
RaisePropertyChanged(() => Photo5);
}