[ mmwlada @ 31.01.2007. 15:51 ] @
Imam ovakvu hijerarhiju klasa:
BindingList<T> => FSBindingList<T> => MojaList<mojObjekat>

U konstruktoru neke moje klase imam:
Code:

public Klasa()
{
    MojaList lista = new MojaList();
    lista.Listchanged += new ListChangedEventHandler(lista_ListChanged);
}

I posle toga funkciju:
Code:

void lista_ListChanged(object sender, ListChangedEventArgs e)
{
    OdaradiNesto();
}


I kada u nekoj funkciji odradim npr.
Code:

lista[0] = mojObjekat;


Ništa se ne dešava. Šta bi mogao da bude problem?
ListChanged event bi trebalo da okine kada se promeni lista ili neki član liste.

[Ovu poruku je menjao mmwlada dana 01.02.2007. u 15:55 GMT+1]
[ DarkMan @ 31.01.2007. 18:41 ] @
Imas u helpu objasnjenje:
Citat:

ListChanged notifications for item value changes are only raised if the list item type implements the INotifyPropertyChanged interface.
[ mmwlada @ 01.02.2007. 14:49 ] @
Citat:
DarkMan: Imas u helpu objasnjenje:


INotifyPropertyChanged interfejs se mora implementirati ako želiš da se okine ListChanged event nakon promene neke osobine objekta u listi. Ja želim da me obavesti kada ubacim ili izbacim element iz liste. Ne kada menjam osobine nekog objekta u listi.

U svakom slučaju, implementirao sam INotifyPropertyChanged i još uvek ne radi.
[ aleksandarpopov @ 01.02.2007. 15:39 ] @
A ako ubacujes elemente sa:
Code:

lista.Add(mojObjekat)//sta vec podrzava ta lista..

Sta se tada desava?
[ mmwlada @ 01.02.2007. 18:12 ] @
Citat:
aleksandarpopov: A ako ubacujes elemente sa:
Code:

lista.Add(mojObjekat)//sta vec podrzava ta lista..

Sta se tada desava?

U listu se doda objekat, ali ne dolazi do okidanja ListChanged eventa.
Isto je i sa
Code:

lista.RemoveAt(i);//Ili  lista.Remove(mojObjekat);
//Iz liste se izbaci zahtevani objekat, ali neće da okine event
[ negyxo @ 02.02.2007. 21:11 ] @
Da nisi mozda dirao onaj property RaiseListChangedEvents, on je po defaultu true ali mozda si ga negde setovao na false.
Drugu stvar sto sam primetio je malo slovo kod ListChaged eventa u konstriktoru, sto ne valja, trebalo bi da dobijes compile time gresku. Da li si ti sigurno postovao ceo kod ili si dao samo deo da bi imali uvida o cemu se radi?
[ mmwlada @ 03.02.2007. 17:36 ] @
Citat:
negyxo: Da nisi mozda dirao onaj property RaiseListChangedEvents, on je po defaultu true ali mozda si ga negde setovao na false.
Drugu stvar sto sam primetio je malo slovo kod ListChaged eventa u konstriktoru, sto ne valja, trebalo bi da dobijes compile time gresku. Da li si ti sigurno postovao ceo kod ili si dao samo deo da bi imali uvida o cemu se radi?


Nažalost postovao sam samo deo. Da sam postovao i ostatak sigurno bih i sam pre primetio.

Našao sam gde je problem. Naime ja sam na jednom mestu u kodu zamenio listu sa nekom potpuno drugom listom, koja očigledno nije reagovala na ListChanged event. Čim sam dodao lista.Listchanged += new ListChangedEventHandler(lista_ListChanged); posle tog poziva sve je proradilo.

Hvala svima koji su pokušali da pomognu.