【问题标题】:Remove selected item from ListView from ImageFileCollectionViewModel从 ImageFileCollectionViewModel 中删除 ListView 中的选定项目
【发布时间】:2014-02-11 06:00:15
【问题描述】:

我正在尝试从列表视图和目录中删除选定的项目文件,但我无法成功。我怎样才能删除它。?

string destination_dir = System.IO.Directory.GetCurrentDirectory() + @"./4x6";
    public ImggLList()
    {
    InitializeComponent();
    ListViewImage.Items.Clear();
    DataContextChanged += OnDataContextChanged;


    ImageFileCollectionViewModel ImagesViewModel = new ImageFileCollectionViewModel();
    ImageFileControler.CompleteViewList(ImagesViewModel, destination_dir);
    ListViewImage.DataContext = ImagesViewModel;
    }

OnDataContextChanged

private ImageFileCollectionViewModel _currentDataContext = null;
        private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
        {
            if (_currentDataContext == DataContext) return;

            if (_currentDataContext != null)
                _currentDataContext.SelectedImageFileViewModels = null;

            _currentDataContext = DataContext as ImageFileCollectionViewModel;
            if (_currentDataContext != null)
                _currentDataContext.SelectedImageFileViewModels = ListViewImage.SelectedItems;

        }

按钮功能:

 private List<ImageFileViewModel> copyOfSelection;

        private ImageFileCollectionViewModel imageFileCollection;
        private void Delte_Photo_Click(object sender, RoutedEventArgs e)
        {
            copyOfSelection = imageFileCollection.SelectedImageFileViewModels.Cast<ImageFileViewModel>().ToList();

            foreach (ImageFileViewModel ifvm in copyOfSelection)
            {
                copyOfSelection.Remove(ifvm);
                File.Delete(destination_dir);
            }

        }

NullException 错误:

【问题讨论】:

标签: c# wpf listview


【解决方案1】:
for (int i = 0; i < copyOfSelection.Count; i++)
{
    copyOfSelection.RemoveAt(i);
    File.Delete(destination_dir);        
}

【讨论】:

  • 我已经初始化了 ImageFileCollectionViewModel 和 ImageFileViewModel,我得到了 null 错误
  • 在您的 OnDataContextChanged 方法中,您将 SelectedImageFileViewModels 设置为 null。我不确定您的代码是如何工作的,但是当您尝试引用它时,该对象很可能为空。不过,这与如何从 for 循环中的列表中删除项目无关。
  • 解决此问题的最佳方法是什么?谢谢
猜你喜欢
  • 2012-08-10
  • 1970-01-01
  • 2018-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多