我有一个绑定到可观察集合的数据网格。我想在数据网格中选择几行并单击一个按钮并将这些行从集合中删除。
当我按照自己的方式尝试时,我得到一个错误“<strong>Collection was modified; 枚举操作可能无法执行。”
我知道错误是造成的,因为我正在循环更改集合,我做了一些研究并尝试应用我发现的内容,但我似乎可以让它工作。
我如何制作集合并将其绑定到 Datagrid
ObservableCollection<XbmcInfo> SelectedShowSeason = new ObservableCollection<XbmcInfo>();
ToCopy.DataContext = SelectedShowSeason;
我如何尝试从集合中删除值
private void Button_Click_1(object sender, RoutedEventArgs e)
{
var x = ToCopy.SelectedItems;
foreach (XbmcInfo f in x)
{
string ShowName = f.ShowName;
string ShowSeasonNumber = f.Number;
var Selected = SelectedShowSeason.FirstOrDefault(u => u.ShowName == ShowName && u.Number == ShowSeasonNumber);
SelectedShowSeason.Remove(Selected);
}
}
这是数据网格的 XML
<DataGrid Name="ToCopy" AutoGenerateColumns="False" ItemsSource="{Binding}" Margin="0,0,0,51" Grid.Row="2" Grid.ColumnSpan="3" IsReadOnly="True" CanUserResizeRows="False" CanUserReorderColumns ="False" IsSynchronizedWithCurrentItem="True">
<DataGrid.Columns>
<DataGridTextColumn Header="ShowName" Width="*" Binding="{Binding Path=ShowName}" />
<DataGridTextColumn Header="Season" Width="50" Binding="{Binding Path=Number}" />
<DataGridTextColumn Header="Path" Width="*" Binding="{Binding Path=Path}"/>
</DataGrid.Columns>
</DataGrid>
我的课
public class XbmcInfo
{
public string ShowName
{
get;
set;
}
public string Number
{
get;
set;
}
public string Path
{
get;
set;
}
}