【WPF】当 ItemsSource 正在使用时操作无效。改用 ItemsControl.ItemsSource 访问和修改元素
2017-02-05 10:40
393 查看
问题:
中文版报错:Additional information: 当 ItemsSource 正在使用时操作无效。改用 ItemsControl.ItemsSource 访问和修改元素。
英文版报错:Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead.
原因:前台XAML中ListBox之类的含多个条目的控件,它的ItemsSource绑定了ViewModel中的某个ObservableCollection< T >集合,但在Model中调用时尝试访问这个控件,并修改它的ItemsSource。如下面的写法会报错:
解决:因为前台控件的ItemsSource已被绑定到某个集合中,所以不能再直接操作这个控件的ItemsSource,而应转为操作这个控件ItemsSource所绑定的集合。改为如下写法即可:
中文版报错:Additional information: 当 ItemsSource 正在使用时操作无效。改用 ItemsControl.ItemsSource 访问和修改元素。
英文版报错:Operation is not valid while ItemsSource is in use. Access and modify elements with ItemsControl.ItemsSource instead.
原因:前台XAML中ListBox之类的含多个条目的控件,它的ItemsSource绑定了ViewModel中的某个ObservableCollection< T >集合,但在Model中调用时尝试访问这个控件,并修改它的ItemsSource。如下面的写法会报错:
<ListBox x:Name="designViewLB" ItemsSource="{Binding DesignViewList}">
shellWindow.designViewLB.Items.Add(new DesignViewItem() { // ... 设置属性 });
解决:因为前台控件的ItemsSource已被绑定到某个集合中,所以不能再直接操作这个控件的ItemsSource,而应转为操作这个控件ItemsSource所绑定的集合。改为如下写法即可:
shellViewModel.DesignViewList.Add(new DesignViewItem() { // ... 设置属性 });
相关文章推荐
- WPF (当 ItemsSource 正在使用时操作无效。改用 ItemsControl.ItemsSource 访问和修改)错误解决方案
- Oracle 远程访问配置 在 Windows Forms 和 WPF 应用中使用 FontAwesome 图标 C#反序列化XML异常:在 XML文档(0, 0)中有一个错误“缺少根元素” C#[Win32&WinCE&WM]应用程序只能运行一个实例:MutexHelper Decimal类型截取保留N位小数向上取, Decimal类型截取保留N位小数并且不进行四舍五入操作
- 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
- 线程间操作无效: 从不是创建控件“Control Name&#39;”的线程访问它问题的解决方案及原理分析
- 因为数据库正在使用,所以未能获得对数据库的排它访问权。RESTORE DATABASE 操作异常终止。
- WPF使用DEV之TreeListControl---修改树列显示的名字
- 【转】数据库基本知识:(十)数据操作 · 查 · (三)使用子查询访问和修改数据
- 使用Javascript操作DOM的一些方法--元素的访问/复制等
- 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
- WPF的ItemsControl设置数据源以及Binding使用
- 解决“线程间操作无效: 从不是创建控件的线程访问它” 非使用线程非安全操作
- 多个线程可能会试图同时访问某个对象。在多个线程同时争相访问某个对象的同时,如果一个线程修改了资源,有些线程可能会收到无效状态。例如,如果某个线程读取对象的字段,同时另一线程正在修改该字段,则第一个线程可能会收到无效的字段状态。这种情况称为竞用情况。
- WPF ItemsControl 的 ItemsSource 绑定的一个bug
- ubuntu 下修改文件访问权限chmod 777 -R *血的教训!没事别乱开权限!用谁开谁的就行。。。最后不要用这个命令,文件操作全部改用终端
- 线程使用中常见的错误-“System.InvalidOperationException”线程间操作无效: 从不是创建控件“ ”的线程访问它。
- c#中使用多线程访问winform中控件的若干问题 解决线程间操作无效: 从不是创建控件的线程访问它
- 线程间操作无效: 从不是创建控件“Control Name'”的线程访问它问题的解决方案及原理分析
- 使用getElementById访问修改元素
- 黄聪:C#“多线程线程间操作无效: 从不是创建控件的线程访问它。”,跨线程修改控件属性解决方案
- 使用jquery操作元素的css样式(获取、修改等等)