itemsource にバインドされた監視可能な文字列のコレクションを持つ Transitionals Slideshow コントロールを使用しています。これらの文字列は、slidehow 内の各画像へのファイル パスです。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 がスライド ショー コントロールのアイテム ソースとして使用されていることに関係していることはわかっていますが、このエラーの発生を防ぐ方法を知る必要があります。
ありがとうございました!