小编ebp*_*bpa的帖子

从CollectionChanged事件处理程序中的ObservableCollection中删除项

我希望能够在将一些项目添加到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调用放在另一个处理程序中是另一个想到的选项.

c# observablecollection

11
推荐指数
2
解决办法
4万
查看次数

从命令行打开 chrome:// URL?

您可以从命令行在 chrome 中打开一个 URL:

google-chrome https://example.com
Run Code Online (Sandbox Code Playgroud)

有没有办法以这种方式打开chrome://URL(例如chrome://bookmarks/)?当我尝试chrome://从 shell打开URL 时,chrome 只会打开一个空的浏览器选项卡。

如果 Chrome 只是为了用户保护而拒绝,也就不足为奇了。如果碰巧是这种情况:这是在哪里记录的?

google-chrome

7
推荐指数
1
解决办法
2200
查看次数

如何在Chrome DevTools中隐藏"Adblock Plus"标签?

最近我注意到AdBlock Plus(v1.11)为Chrome DevTools添加了一个标签.如何隐藏或禁用它?

google-chrome-devtools

4
推荐指数
1
解决办法
784
查看次数