0
我想從刪除的項目我observablecollection
列表視圖刪除項目索引源是在使用WPF
ObservableCollection<GetterSetter> _getterSetter = new ObservableCollection<GetterSetter>();
public ObservableCollection<GetterSetter> showList
{
get { return this._getterSetter; }
}
所以我的XAML文件是這樣的,
<ListView x:Name="listView" Grid.Row="1" SelectionChanged="listView_SelectionChanged" Foreground="Black" ItemsSource="{Binding ListViewCollection}" SelectedItem="{Binding SelectedListViewItem,Mode=TwoWay}" SelectionMode="Single">
<ListView.View>
<GridView>
<GridViewColumn Header="Name" Width="180" DisplayMemberBinding="{Binding ShowName}"/>
</GridView>
和我在這裏ShowName的getter setter方法,
private string _showName;
public String ShowName{
get { return _showName; }
set
{
if (value == _showName) return;
_showName = value;
OnPropertyChanged();
}
我想刪除這樣的選定項目,它給了我一個錯誤,
listView.Items.Remove(listView.SelectedItems[0]);
showList.RemoveAt(listView.Items.IndexOf(listView.SelectedItems[0]));
我也試過這個
var delete = SelectedListViewItem;
listView.Items.Remove(delete);
無一不給了我這個錯誤,
'System.InvalidOperationException' 類型的未處理的異常出現在PresentationFramework.dll
附加信息:在ItemsSource正在使用時,操作無效。改爲使用ItemsControl.ItemsSource訪問和修改元素。
的方式GetterSetter
是我的CS文件是我第三代碼段位於何處,
public GetterSetter SelectedListViewItem
{
get { return _selectedListViewItem; }
set
{
if (Equals(value, _selectedListViewItem)) return;
_selectedListViewItem = value;
OnPropertyChanged();
}
}
現在,它給了我「型‘System.ArgumentOutOfRangeException’未處理的異常出現在mscorlib.dll 附加信息:索引超出範圍必須爲非負數且小於集合的大小。」在這一行代碼中,'showNameBox.Text = showList [listView.Items.IndexOf(listView.SelectedItems [0])]。ShowName;' – Louni
究竟是什麼SelectedListViewItem?它在哪裏定義? –
它在xaml代碼中定義,你可以在第二個代碼片段中看到它 – Louni