DataGrid, ObservableCollection i zależności

Dyskusje na temat języka C# oraz biblioteki .NET
cymesky
Nowicjusz
Posty: 1
Dołączył(a): sobota, 25 października 2014, 12:12

DataGrid, ObservableCollection i zależności

Post przez cymesky »

Stworzyłem dodatkowe okno WPF w moim projekcie, które zawiera ObservableCollection (Kolekcja) z obiektami (obiektKolekcji) mającymi zaimplementowany interfejs INotifyPropertyChanged.
Mam w tym oknie kontrolkę DataGrid, której źródłem jest Kolekcja. obiektyKolekcji posiadają 3 zmienne, które są odzwierciedlane w 3 kolumnach DataGrida.
W jednej z kolumn pozwoliłem na wpisywanie wartości bezpośrednio do kontrolki DataGrid. W momencie, kiedy użytkownik wpisze liczbę do kontrolki (zmiennej), wtedy automatycznie zmienia się wartość w kolejnej kolumnie (zaprogramowałem aby liczył w tym momencie to co wpisał użytkownik z inną wartością co daje razem sumę). W tym momencie potrzebuję przekazać do nowej klasy całą kolekcję aby ta wyliczyła sumę wszystkich obiektów (czyli sumę wszystkich wartości z jednej z kolumn) i potrzebuję czegoś w rodzaju eventu, który wywoła przekazanie do nowej klasy całej kolekcji. Wbudowane w DataGrid eventy niestety nie działają, ponieważ odnoszą się głównie do aktywnego "Cella" a nie do tego w kolejnej kolumnie(wtedy mógłbym odpalić event w momencie kiedy zmienia się suma, chodzi o to aby w czasie rzeczywistym było widać ogólną sumę w innej kontrolce np. TextBlocku). I tak np. event związany ze zmianą aktywnego pola działa świetnie (ponieważ po wpisaniu wartości i wciśnięciu Enter, aktywna komórka idzie w dół i podsumowanie pięknie działa) do momentu kiedy nie dochodzimy do ostatniego wiersza i po wciśnięciu Entera aktywna komórka nie zmienia już swojego położenia.
Dopiero w momencie zmiany aktywnej komórki podliczenie znowu zadziała a tak być nie może.
Chciałem podpiąć event pod jedną ze zmiennych obiektu, który wylicza sumę i to jest właśnie czas idealny ... obiekt pięknie woła (za sprawą INotifyPropertyChanged) że jest zmiana ale nie wiem jak przekazać to wyżej tzn. do instancji obiektu, który posiada kolekcję z tym obiektem aby ten mógł jakoś to wychwycić i wywołać procedurę odpowiedzialną za podsumowanie....
Eventy takie jak CellEditEnding nie działają właściwie, bo procedura wykona się jeszcze przed zmianą sumy.
Czy ktoś jest mnie w stanie jakoś naprowadzić na własciwy tor? :)
Z góry dziękuje ...
Morfidon
Administrator
Administrator
Posty: 1332
Dołączył(a): wtorek, 5 sierpnia 2008, 21:48
Contact:

Re: DataGrid, ObservableCollection i zależności

Post przez Morfidon »

Hej,

A nie możesz podnieść event w momencie puszczenia klawisza? KeyUp? lub PreviewKeyUp?

Pozdrawiam
Post Reply