2013-01-08 11 views
6

Ta klasa umożliwia propagację kontekstu danych z kolekcji do jej członków. Ale jest tylko dla SilverLight.Czy istnieje odpowiednik DependencyObjectCollection <T> dla WPF .NET4.0?

Więcej informacji o DepedencyObjectCollection można znaleźć pod tym numerem: post.

Jeśli ekwiwalent nie istnieje, jakie kroki należy wykonać, aby go utworzyć?

Obserwuję zachowanie pożądania z klasy RowDefinitionCollection. Ale nie mogłem wymyślić jego realizacji.

dziękuję

+4

Mężczyzna, nie mogę się doczekać .Net 40! – RichardTowers

+0

Być może szukasz 'System.Collections.ObjectModel.ObservableCollection '? – newb

+1

Nie. ObservableCollection nie przekazuje kontekstu danych do jego elementów. Aby powiązanie danych działało, T musi dziedziczyć z DependencyObject. Nie ma żadnych ograniczeń co do T dla ObservableCollection, więc nie działałoby to po wyjęciu z pudełka. –

Odpowiedz

2

Krótka odpowiedź brzmi NIE.

Ale już nie uważam, że i tak jest to prawidłowe wdrożenie. Kończę przy użyciu kolekcja FrameworkElement i dodać je do LogicalChildren niestandardowego formantu. W ten sposób DataContext są przekazywane do programu FrameworkElement w naturalny sposób i wszystko działa zgodnie z oczekiwaniami.

Wygląda na to, że w ten sposób zaimplementowano klasę RowDefinition w .NET 4.0. Jednak wersja RowDefinition w Silverlight pochodzi bezpośrednio z DependencyObject. Dokument MSDN domyślnie pokazuje dokumentację Silverlight i przekierował mnie do starszego i niepoprawnego podejścia.