Tworze aplikacje z wykorzystaniem WPF oraz MVVM.
Napotkałem mały problem z properties, jak wykonać to poprawnie ?
Mam na ekranie checkBoxa oraz data grid (ukryty).
Jeżeli użytkownik zaznaczy checkbox-a, data grid się pojawia oraz jest wstawiany jeden wiersz z danymi.
W pierwszej implementacji, rozwiązałem to w taki sposób :
- Zbindowałem Property z ViewModelu do checkbox-a (TwoWay)
- Zbindowałem własność Visibility datagrida do checkbox-a
- Logikę odpowiedzialną za wstawianie jednego wiersza wstawiłem w ramach set {..} własności zbindowanej do checkboxa.
- Wszystko działa.
Następnie z biegiem czasu robiłem refactoring i zmieniłem to rozwiązanie.
- Logikę odpowiedzialną za wstawianie jednego wiersza do DataGridu przy zaznaczeniu kontroli przeniosłem do Command wywoływanej na kliknięcie
- Wszystko działa.
Obecnie pokrywam ViewModel unit testami i mam zagwozdkę.
- Chcę napisać test, który sprawdza czy po zaznaczeniu checkBox-a pojawia się w DataGridzie jeden wiersz.
- Jednak aby to sprawdzić muszę wykonać Commende oraz Zmienić wartość Property. Na pewno nie jest to ładne rozwiązanie.
--- Jakie ostatecznie powinien wyglądać taki mechanizm ?
Wpadłem na taki pomysł.
- CheckBox-a zbindować do Property z ViewModel (only one way)
- Cała logikę odpowiedzialną za wstawianie wiersza oraz zmianie wartości Property umieścić w Command.
- W unit testach używać tylko Command.
Co o tym sądzicie ?