什么是通知 class A 属性 对 class A 列表中 class B 对象的更改的好方法
What is a good way to notify class A of a property change on objects of class B in a list in class A
我有 类 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
在 MyList
中的任何 B 类型对象上发生变化时,我都需要得到通知。发生这种情况时,我将调用 CalculateAllComplete
方法来判断列表中的所有项目是否完整。
执行此操作的好方法是什么?
我将在 class B 上实现 INotifyPropertyChanged 接口,并让 class A 实例订阅任何 属性 更改。
在您的 class B 中实现接口 IObservable 并在 class A 中订阅 B 的一个实例
看看 https://msdn.microsoft.com/library/dd990377.aspx
我有 类 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
在 MyList
中的任何 B 类型对象上发生变化时,我都需要得到通知。发生这种情况时,我将调用 CalculateAllComplete
方法来判断列表中的所有项目是否完整。
执行此操作的好方法是什么?
我将在 class B 上实现 INotifyPropertyChanged 接口,并让 class A 实例订阅任何 属性 更改。
在您的 class B 中实现接口 IObservable 并在 class A 中订阅 B 的一个实例 看看 https://msdn.microsoft.com/library/dd990377.aspx