0

VS2010Collection was modified; enumeration operation may not executeのFramework4.0でのWPFアプリケーションでエラーが発生します。

この収集エラーは、コンパイルされたデバッグバージョンのプログラムを起動しているときにのみ発生します。問題は、インテリジェンス情報が提供されていないためにエラーを追跡できず、このエラーがどのコード行に関連しているかを見つけることができないことです。

誤ったコードに到達するために何をしますか?debug .exeでインテリジェンスを有効にするために切り替えるオプションはありますか?x86でコンパイルするように指示するメッセージがありますが、これはすでにx86モードでコンパイルされています。


ソース

コードのどの部分を貼り付ける必要があるかはわかりませんが、アプリケーションの「パターン」についてのアイデアが得られます。

これは私のListViewであり、<AudioFile>のリストにバインドされています

<ListView AllowDrop="True" Drop="dropMP3" DragEnter="dropMP3Begin"
GridViewColumnHeader.Click="GridViewColumnHeaderClickedHandler"
ScrollViewer.VerticalScrollBarVisibility="Visible"  
ScrollViewer.HorizontalScrollBarVisibility="Disabled" UseLayoutRounding="False" 
ItemsSource="{Binding}" x:Name="myTracks" Margin="0" AlternationCount="2" 
Foreground="#FFEFEFEF" FontSize="13.333" VerticalAlignment="Top" 
SizeChanged="myTracks_SizeChanged" Background="Black" 
MouseDoubleClick="myTracksDoubleClick">

これらは私のコラムです:

<GridViewColumn Width="Auto" DisplayMemberBinding="{Binding Artist}">
    <TextBlock Text="Artist"></TextBlock>
</GridViewColumn>
<GridViewColumn Width="Auto" Header="Title" DisplayMemberBinding="{Binding Title}"/>
<GridViewColumn Width="Auto" Header="Album" DisplayMemberBinding="{Binding Album}"/>
<GridViewColumn Width="Auto" DisplayMemberBinding="{Binding Length}">
    <Image Source="Icons\clock.png" Height="15"/>              
</GridViewColumn>

アプリケーション開始時

myTracks.DataContext = songs;

これが私の目的です

public class AudioFile
{
    public String Artist { get; set; }
    public String Title { get; set; }
    public String Album { get; set; }
    public String fileLocation { get; set; }
    public String Length { get; set; }
    public String Track { get; set; }
}

曲が見つかったとき:

void lm_SongFound(AudioFile file)
{
        songs.Add(file);
}
4

1 に答える 1

3

foreachこれは通常、反復中にコレクションを変更したときに発生します。

例えば:

foreach(var item in items){
    items.Remove(item);
}

ご覧のとおり、コレクションは繰り返されている間に変更されています。

例外が表示されないという事実は、例外が存在しないことを意味しない場合があります。多分それは閉じ込められています。これは、WPFバインディングで発生していました。

于 2012-05-18T02:10:52.957 に答える