首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >BindingList和InotifyPropertyChanged

BindingList和InotifyPropertyChanged
EN

Stack Overflow用户
提问于 2013-03-20 22:30:59
回答 1查看 318关注 0票数 1

我已经搜索了所有的论坛,但我没有找到我的问题的答案。也许我只是用错了关键字。假设我有一个类Foo:

代码语言:javascript
复制
class Foo
{
    string a;
    string b;
}

Foo的许多实例现在保存在

代码语言:javascript
复制
BindingList<Foo> bf;

然后我有了第二个类,它实现了Foo类型的对象之间的某种关系:

代码语言:javascript
复制
class Bar
{
    Foo f1;
    Relation r;
    Foo f2;
}

同样,类Bar的许多实例保存在

代码语言:javascript
复制
BindingList<Bar> bb;

在我的程序中的某个时刻,我现在删除了Foo的一个实例,比如f7。

代码语言:javascript
复制
bb.Remove(f7);

有没有可能删除那些包含f7引用的Bar实例?此时,我挂接到bf的ListChanged事件,手动遍历bb并杀死那些包含f7的Bar实例。有没有更聪明的方法?

谢谢你的帮助,Guido

EN

回答 1

Stack Overflow用户

发布于 2013-03-20 22:38:55

从你的行动来看。我怀疑你想要这样的东西。您必须确保Bar中的Foo对象是同一实例,或者在Foo上实现IEquatable

代码语言:javascript
复制
var barWhereFoosExist = bb.Where(x => x.f1.Equals(f7) || x.f2.Equals(f7));
foreach(Bar b in barWhereFoosExist)
{
  bb.Remove(b);
}

使用下面这样的代码尝试上面的代码。

代码语言:javascript
复制
BindingList<Bar> bb = new BindingList<Bar>();
Foo f7 = new Foo();
Bar b = New Bar();
b.f1 = f7;
b.f2 = new Foo();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15526416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档