我希望能够在将一些项目添加到ObservableCollection后拒绝它们.我无法继承ObservableCollection或使用任何类型的视图,所以我似乎只限于使用定义的一个事件处理程序(CollectionChanged)对禁止的项目执行.Remove().如果项目在提升和处理事件之间的短时间内存在,那就没关系了; 这些物品应该不会留在集合中.在CollectionChanged事件处理程序中调用.Remove()似乎不被允许.在运行时.NET抛出InvalidOperationException:
"在CollectionChanged事件期间无法更改ObservableCollection."
我个人认为.NET应该允许我这样做.如果我创建一个无限循环,这是我自己的错误.
我想使用的代码如下:
myCollection.CollectionChanged += (sender, args) =>
{
if (args.Action == NotifyCollectionChangedAction.Remove)
return;
foreach (var itm in myCollection)
{
if (itm.name == "Fred")
myCollection.Remove(itm);
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定我有什么选择.使用调度程序似乎不起作用.触发另一个事件并将.Remove调用放在另一个处理程序中是另一个想到的选项.
您可以从命令行在 chrome 中打开一个 URL:
google-chrome https://example.com
Run Code Online (Sandbox Code Playgroud)
有没有办法以这种方式打开chrome://URL(例如chrome://bookmarks/)?当我尝试chrome://从 shell打开URL 时,chrome 只会打开一个空的浏览器选项卡。
如果 Chrome 只是为了用户保护而拒绝,也就不足为奇了。如果碰巧是这种情况:这是在哪里记录的?
最近我注意到AdBlock Plus(v1.11)为Chrome DevTools添加了一个标签.如何隐藏或禁用它?