DGV nie jest jedynym rozwiązaniem, bo wszystko można oprzeć na zwykłych TextBoxach czy NumericUpDown(czy czymkolwiek innym w co da się coś wpisać), ale napisać to w oparciu o DGV będzie najłatwiej.
Wartości poszczególnych komórek odczytuje się poprzez właściwość Rows(kolekcja wiersz) pobierając wybrany wiersz(operator[] jest przeładowany) i wybierając z niego odpowiednią komórkę(właściwość Cells - też ma przeładowany indekser). Wartość zapisana jest we właściwości Value - wystarczy ją odpowiednio zrzutować/sparsować. Takie rozwiązanie będzie łatwe w implementacji, ale za każdym razem trzeba będzie parsować wartości.
Ok, dzięki Fiołek. Jakoś sobie poradziłem. Mam jeszcze jeden problem.
Mianowicie mam 2 scrolle i chciałbym uzależnić jeden od drugiego. Tzn. jeśli jeden przesuwam (zmieniam wartość) to drugi też powinien równocześnie zmieniać wartość. Próbowałem coś zrobić, ale za bardzo mi nie wychodziło, bo pomimo, że przypisałem do drugiego scrolla wartość pierwszego to nie wiedziałem jak go odświeżyć aby było widać zmianę wartości.
Nazwę dla wiersza? Z tego co wiem - nie da się(w WF, w WPF DataGridRow ma pole Name, ale służy do czego innego), lecz nic nie stoi na przeszkodzie by dodać kolumnę na tą nazwę.