WPF DataBinding iz DateGridColumn tipa ka globalnom DataContext objektu
Ovo me je odavno mučilo. Dovijao sam se na razne načine, a neretko i (da neko ne čuje) u CodeBehind fajlu. Razlog tome je što kolona u DataGrid-u nije deo ni logičkog ni vizuelnog WPF stabla. A bar jedno od ta dva je neophodno kako bi se DataContext objekat mogao propagirati kroz sve kontrole.
Rešenje je da se iskoristi osobina Freezable objekata koji su iz nekog razloga implementirani tako da mogu da naslede DataContext iako nisu u navedenim stablima. Nabasao sam na odličan kratak blog post o tome. Čovek je napisao malu klasu BindingProxy koja je Freezable i preko nje je konačno moguće pristupiti ViewModel poljima i kontrolisati neke trivijalne stvari kao što je recimo vidljivost.
Rešenje je da se iskoristi osobina Freezable objekata koji su iz nekog razloga implementirani tako da mogu da naslede DataContext iako nisu u navedenim stablima. Nabasao sam na odličan kratak blog post o tome. Čovek je napisao malu klasu BindingProxy koja je Freezable i preko nje je konačno moguće pristupiti ViewModel poljima i kontrolisati neke trivijalne stvari kao što je recimo vidljivost.
Коментари
Постави коментар