2011-06-14 80 views
2

我想预约的书在Silverlight中使用C#,所以我将有一个主AppointmentBook控制,具有如下存储每个Appointment控制:检查IList是否更改?

List<kAppointment> appointments = null; 

    public IList<kAppointment> Appointments 
    { 
     get 
     { 
      if (appointments == null) 
      { 
       appointments = new List<kAppointment>(); 
      } 

      // Can notify something change here, 
      return appointments; 
     } 
    } 

我可以通知分配AppointmentBook控制新名单与上面的代码,所以它会重绘每个约会控制。

但我怎么能检查,如果约会列表改变由如下?:

appointments.Add(NewAppointment); 

回答

4

听起来像是ObservableCollection的工作。

这让我们订阅活动并告诉我们收集更改的方式。

+0

oo我明白了,谢谢。 – King 2011-06-14 18:49:00

0

我能想到的一些事情。

  1. 为包含一个额外的布尔变化的IList创建一个包装类。
  2. 使用某些变量(例如布尔值),当您执行添加/删除/编辑操作时使其成为true,并在重绘时使其变为false。
  3. 把这份清单的复印件your're图纸(或只是一些指标是存在),并检查“进入”和“最后drawed名单是相同的
  4. 使用一个ObservableCollection
0

您可以使用和ObservableCollection像其他人建议或您可以做一些封装和不提供完整访问私人会员

如果Add是通过您提供的单一公共方法完成的,您将始终知道该类的用户何时添加约会并相应采取行动。