C# 绑定列表&;InotifyProperty已更改
我搜索了所有的论坛,但我找不到我的问题的答案。也许我只是用错了关键词。 假设我有一个Foo类:C# 绑定列表&;InotifyProperty已更改,c#,bindinglist,C#,Bindinglist,我搜索了所有的论坛,但我找不到我的问题的答案。也许我只是用错了关键词。 假设我有一个Foo类: class Foo { string a; string b; } 许多Foo实例现在保存在 BindingList<Foo> bf; 同样,类Bar的许多实例保存在 BindingList<Bar> bb; 是否有可能删除包含f7引用的Bar实例? 目前,我钩住bf的ListChanged事件,手动遍历bb并杀死那些包含f7的Bar实例。有更聪明的方法吗
class Foo
{
string a;
string b;
}
许多Foo实例现在保存在
BindingList<Foo> bf;
同样,类Bar的许多实例保存在
BindingList<Bar> bb;
是否有可能删除包含f7引用的Bar实例?
目前,我钩住bf的ListChanged事件,手动遍历bb并杀死那些包含f7的Bar实例。有更聪明的方法吗
谢谢你的帮助,
Guido从你的作品判断。我怀疑你想要这样的东西。您必须确保
Foo
中的Foo
对象是相同的实例,或者在Foo
上实现IEquatable
var barWhereFoosExist = bb.Where(x => x.f1.Equals(f7) || x.f2.Equals(f7));
foreach(Bar b in barWhereFoosExist)
{
bb.Remove(b);
}
用这样的方法试试上面的方法
BindingList<Bar> bb = new BindingList<Bar>();
Foo f7 = new Foo();
Bar b = New Bar();
b.f1 = f7;
b.f2 = new Foo();
BindingList bb=newbindingList();
Foo f7=新的Foo();
杆b=新杆();
b、 f1=f7;
b、 f2=新的Foo();
从你的作品判断。我怀疑你想要这样的东西。您必须确保Foo
中的Foo
对象是相同的实例,或者在Foo
上实现IEquatable
var barWhereFoosExist = bb.Where(x => x.f1.Equals(f7) || x.f2.Equals(f7));
foreach(Bar b in barWhereFoosExist)
{
bb.Remove(b);
}
用这样的方法试试上面的方法
BindingList<Bar> bb = new BindingList<Bar>();
Foo f7 = new Foo();
Bar b = New Bar();
b.f1 = f7;
b.f2 = new Foo();
BindingList bb=newbindingList();
Foo f7=新的Foo();
杆b=新杆();
b、 f1=f7;
b、 f2=新的Foo();
你是说bf.Remove(f7)
?bb包含条,而不是Foos…@ThomasLevesque我认为OP的意思是,如果Foo
属性之一等于F7
,他想从列表中删除。所以它确实意味着bb.Remove(f7)在本例中:)ops,确切地说,我的意思是bf.Remove(f7)Remove不会杀死你的对象。它只是从列表中删除对对象的引用。如果您先为引用指定null,然后删除引用,则对该对象的所有引用都将为null。您的意思是bf.remove(f7)
?bb包含条,而不是Foos…@ThomasLevesque我认为OP的意思是,如果Foo
属性之一等于F7
,他想从列表中删除。所以它确实意味着bb.Remove(f7)在本例中:)ops,确切地说,我的意思是bf.Remove(f7)Remove不会杀死你的对象。它只是从列表中删除对对象的引用。如果您先为引用指定null,然后删除引用,则对该对象的所有引用都将为null。@Jan您是说您已经这样做了吗?这正是你要做的吗?@Jan你是说你已经在做了吗?这正是你要做的?