관찰 가능한 컬렉션에 바인딩 된 데이터 표가 있습니다. 데이터 그리드에서 몇 개의 행을 선택하고 단추를 클릭하여 해당 행을 컬렉션에서 제거하려고합니다.ObservableCollection에서 데이터 그리드에서 항목을 선택하여 항목 제거
내 방식대로 시도하면 오류가 발생합니다. "컬렉션이 수정되었습니다. 열거 연산이 실행되지 않을 수 있습니다. "
나는 몇 가지 조사를 해본 결과 내가 적용된 것을 적용하려고 노력했지만 반복적으로 반복하고 있기 때문에 오류가 발생한다는 것을 알고있다. 내가 컬렉션을 내가 컬렉션에서 값을 제거하려고 어떻게에서 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;
}
}
그리고 무엇을 줘? 당신은 어떻게 바인딩을합니까? – sexta13
질문에서 제거하는 방법은 ... 여전히 오류를 던지고 있습니까?이 컬렉션을 통해 반복하지 않으므로? – Nitin