추가 및 제거 이벤트가있는 .net 컬렉션이 필요합니다. 거기에 미리 버전이 있습니까?추가 및 제거 이벤트가있는 List 버전이 있습니까?
예를 들어, 사용자가 이벤트를 통해 목록에 항목을 추가하면 일부 내부 카운터가 업데이트됩니다. (내가 원하는 것을 실제로는하지 않습니다.)
추가 및 제거 이벤트가있는 .net 컬렉션이 필요합니다. 거기에 미리 버전이 있습니까?추가 및 제거 이벤트가있는 List 버전이 있습니까?
예를 들어, 사용자가 이벤트를 통해 목록에 항목을 추가하면 일부 내부 카운터가 업데이트됩니다. (내가 원하는 것을 실제로는하지 않습니다.)
시도 ObservableCollection<T>
INotifyCollectionChanged
은 컬렉션 수정의 모든 측면에 이벤트를 제공합니다.
네임 스페이스 : System.Collections.ObjectModel
어셈블리 : 당신이 프레임 워크에 얻을 것이다으로 수 WindowsBase.dll
ObservableCollection<T>는 가까운 거리에 있습니다.
OTOH 이렇게하기가 어렵지 않습니다. 그냥 IList를 구현하고 내부 목록 < T> 인스턴스를 래핑하는 클래스를 만듭니다. 필요에 따라 이벤트를 보낼 수 있습니다.
또는 컬렉션
유연성을 희생하면서 속도를 최적화하려는 경우 맞춤형 경량 래퍼를 작성할 수도 있습니다.
내가 알지는 못했지만 구현하기가 매우 쉽다. 직접 추가하고 제거하는 방법을 만들거나 인덱서를 사용할 수있다. 그런 다음 이벤트와 관련하여 원하는대로 할 수 있습니다.
private List<string> listOfStrings = new List<string>;
public void AddToList(string s)
{
// Do your work
listOfStrings.Add(s);
}
또는 당신은 그것을 과부하 당신이 원하는대로 이벤트를 추가 할 수 있습니다 : 당신은 항상 다음 개인 List<...>
만들 수
는 방법으로 액세스 할 수 있습니다.
4.0에서 system.dll로 이동 중입니다. btw – Will
.NET 2의 경우 불행히도 BindingList (http://msdn.microsoft.com/en-us/library/ms132679.aspx)이 있습니다. 그 세분화 된 이벤트 지원. –
Joey
실제로 바인딩 목록으로 끝났습니다. ObservableCollection 은 Compact Framework를 지원하지 않으므로 사용할 수 없습니다 (언급하지 않기에 나쁘다). 답을 모두 주셔서 감사합니다. (요하네스, 나는 당신의 의견에 대해 "지불"에 대한 당신의 대답 중 일부에 30pt를 썼습니다.) 다시 한번 감사드립니다! –
Vaccano