Zagwosta z Properties.

Odpowiedz Nowy wątek
2015-01-23 17:03
0

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 ?

Pozostało 580 znaków

2015-01-26 10:37
0

up

Pozostało 580 znaków

2015-01-26 10:58
gsfdgsfdg
0

po to są commandy żeby się łatwiej testowało, w teście wystarczy wykonać Command
po co zmieniać property? żeby się grid pokazał? testy nie powinny testować widoków

Pozostało 580 znaków

2015-01-26 11:38
0

Zgadza się testy nie testują widoków.
W ramach testu chce przetestować ViewModel i zachwianie po wywołaniu akcji.

O tuż moje pytanie, Czy property powinienem zmieniać w ramach Command czy zbindować property do checkbox-a ?

Property jest wymagane do implementacji dodatkowej logiki.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0