2011-06-14 138 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是通過您提供的單一公共方法完成的,您將始終知道該類的用戶何時添加約會並相應採取行動。