嗨,我尝试从列表框中删除所有元素:
这是我的简单列表框:
<ListBox Margin="0,0,-12,0" ItemsSource="{Binding Items}" Name="listbox" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="0,0,0,17" >
<!--Replace rectangle with image-->
<Image Source="{Binding Img}" />
<StackPanel Width="311">
<TextBlock Text="{Binding Pos}"
</StackPanel>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但是,当我尝试删除列表框的所有元素时,错误是:
A first chance exception of type 'System.InvalidOperationException' occurred in System.Windows.dll
System.InvalidOperationException: Operation not supported on read-only collection.
at System.Windows.Controls.ItemCollection.ClearImpl()
at System.Windows.PresentationFrameworkCollection`1.Clear()
at aaaaa.MainPage.Button_Click(Object sender, RoutedEventArgs e)
at System.Windows.Controls.Primitives.ButtonBase.OnClick()
at System.Windows.Controls.Button.OnClick()
at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)
private void Button_Click(object sender, RoutedEventArgs e)
{
try
{
listbox.Items.Clear();
}
catch (Exception ss) {
Debug.WriteLine(ss.ToString());
}
}
谢谢!
最佳答案
如果将Items
集合指定为Binding
,则无法清除它。您应该改为清除绑定集合。不要忘记您的源集合应该实现INotifyCollectionChanged
关于c# - 从列表框中删除所有项目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6315190/