我有A和B类如下:
public class A
{
private List<B> myList;
public List<B> MyList
{
get { return myList; }
set { myList = value; }
}
private bool allComplete;
public bool AllComplete
{
get { return allComplete; }
set { allComplete = value; }
}
public void CalculateAllComplete()
{
foreach (B item in MyList)
{
if (!item.IsComplete)
{
AllComplete = false;
return;
}
}
AllComplete = true;
}
}
public class B
{
private bool isComplete;
public bool IsComplete
{
get { return isComplete; }
set { isComplete = value; }
}
}
每当属性IsComplete
在类型A的对象MyList
中的任何B类对象上发生更改时,我都需要收到通知。当发生这种情况时,我将调用CalculateAllComplete
方法确定列表中的所有项目是否完整。
这样做的好方法是什么?
答案 0 :(得分:5)
我会在B类上实现INotifyPropertyChanged接口,并让A类实例订阅任何属性更改。
答案 1 :(得分:1)
在B类中实现接口IObservable,并在A类中订阅B的实例 看看https://msdn.microsoft.com/library/dd990377.aspx