WPF FileDrop事件:只允许特定的文件扩展名

我有一个WPF控件,我想从我的桌面删除一个特定的文件到这个控件。 这不是一个沉重的部分,但我想检查文件扩展名以允许或禁止删除。 解决这个问题的最佳方法是什么?

我认为这应该有效:

   

假设您只想允许C#文件:

 private void lbx1_DragOver(object sender, DragEventArgs e) { bool dropEnabled = true; if (e.Data.GetDataPresent(DataFormats.FileDrop, true)) { string[] filenames = e.Data.GetData(DataFormats.FileDrop, true) as string[]; foreach (string filename in filenames) { if(System.IO.Path.GetExtension(filename).ToUpperInvariant() != ".CS") { dropEnabled = false; break; } } } else { dropEnabled = false; } if (!dropEnabled) { e.Effects = DragDropEffects.None; e.Handled = true; } } private void lbx1_Drop(object sender, DragEventArgs e) { string[] droppedFilenames = e.Data.GetData(DataFormats.FileDrop, true) as string[]; }