我正在使用一个过渡幻灯片控件,该控件具有绑定到 itemsource 的可观察字符串集合。这些字符串是幻灯片中每张图片的文件路径。当我第一次加载 WPF 应用程序时,它会正确运行此方法(使用目录路径生成 PicSlideShowCollection):
public void SelectImages(string path)
{
// Validate
if (string.IsNullOrEmpty(path)) throw new ArgumentException("path");
PicSlideShowCollection.Clear();
// Get directory info for specified path
DirectoryInfo di = new DirectoryInfo(path);
// Image mask
string[] extensions = new string[] { "*.jpg", "*.png", "*.gif", "*.bmp" };
// Search for all
foreach (string extension in extensions)
{
foreach (FileInfo fi in di.GetFiles(extension.ToLower()))
{
PicSlideShowCollection.Add(fi.FullName);
}
}
}
但是,我有一个按钮,允许用户更改要在幻灯片中使用的图像目录并重新运行上述方法。执行时,我收到此错误:
传递给 Remove 的 GeneratorPosition '-1,1' 的 Offset 不等于 0。
这发生在 PicSlideShowCollection.Clear() 指令上。如果我评论该指令,新的目录图像会添加到原始目录图片中,这不是我想要的。
我知道这与将 PicSlideShowCollection 用作幻灯片放映控件的项目源有关,但我需要知道如何防止发生此错误。
谢谢!