2009-10-22 36 views
11

Tôi có một lớp học, trong đó có một danh sách:cháy một sự kiện khi Collection Thay đổi (thêm hoặc loại bỏ)

public class a 
{ 
private List<MyType> _Children; 
public Children 
{ 
get {return(_Children);} 
set {_Children = value ;} 
} 
} 

Tôi muốn tạo ra một sự kiện và bắn rằng sự kiện bất cứ khi nào danh sách của tôi (_Children đây) được thay đổi cho ví dụ một mục được thêm vào nó hoặc bị xóa khỏi nó hoặc nó bị xóa.

cảm ơn

Trả lời

19

Thay đổi danh sách thành ObservableCollection<T>. Nó thực hiện INotifyCollectionChanged, vì vậy bạn có thể đăng ký để thay đổi sự kiện trên đó.

Một tùy chọn khác là sử dụng BindingList<T>, nếu bạn cần ngữ nghĩa danh sách đầy đủ.

+8

Một điều cần nhớ về ObservableCollection là nó sẽ ném một ngoại lệ nếu bạn cố gắng thêm một yếu tố để nó từ chủ đề khác so với cái mà bạn đã tạo nó trên (đã hoặc chưa bạn khóa trên nó). –

+0

Điểm rất tốt, 280Z28. –

Các vấn đề liên quan