问题描述
|
我试图用C#在Silverlight中创建一个约会簿,所以我将有一个主
AppointmentBook
控件,并带有以下存储每个Appointment
控件的方法:
List<kAppointment> appointments = null;
public IList<kAppointment> Appointments
{
get
{
if (appointments == null)
{
appointments = new List<kAppointment>();
}
// Can notify something change here,return appointments;
}
}
我可以通知分配有上述代码的“ 0”控件新列表,因此它将重绘每个约会控件。
但是,如果约会列表被以下内容更改,该如何检查呢?
appointments.Add(NewAppointment);
解决方法
听起来像是ObservableCollection的工作。
这使我们可以订阅事件,并告诉我们集合的更改方式。
, 您可以像其他人建议的那样使用和
ObservableCollection
,或者可以做一些封装而不提供对私有成员的完全访问权限。
如果通过您提供的单个公共方法完成“ 6”,您将始终知道班级的用户何时添加约会并采取相应的行动。
, 我可以想到几件事。
为IList创建一个包装器类,其中包含一个额外的布尔值更改。
使用一些在执行添加/删除/编辑操作时为true的变量(例如,布尔值),并在进行重绘时再次使其为false。
保留您正在绘制的列表的副本(或仅保留存在的某些索引),并检查“传入”和“最后绘制”列表是否相同
使用一个ObservableCollection