Witam,
mam pewien problem. Myślę i myślę, ale nie mam pomysłu. Chodzi o to, że mam okno z przyciskiem powiedzmy Zobacz szczegóły klienta. I teraz w momencie kliknięcia przycisku metoda wywołuje mi kod:
ClientDetailsWindow clientDetailsWindow = new ClientDetailsWindow();
Wiadomo, że w oknie musi być wyświetlony cały klient, czyli okno musi "wiedzieć" co wyświetlić. I teraz chcę przekazać jakiegoś integera, a w ViewModelu wykorzystując wstrzyknięty przez konstruktor z Unity Containera serwis pobrać klienta do zmiennej. O ile konstruktor mojego ViewModelu wygląda tak:
public ClientDetailsViewModel(IClientService clientService)
{
_clientService = clientService;
}
To ładnie Unity wstrzykuje mi ten serwis i mogę z niego korzystać. Problem pojawia się, że chcę dopisać tutaj drugi parametr typu int. Wtedy, przy tworzeniu obiektu okna muszę podać w argumencie albo tego inta i w konstruktorze okna jakoś wstrzyknąć ten serwis, albo podać nowy obiekt konstruktora i z poziomy okna "matki" jakoś wstrzyknąć ten serwis.
Wiem, może trochę namieszałem opisując, ale może ktoś miał taką sytuację i może się podzielić.
Istnieje rozwiązanie, aby nie wstrzykiwać tam serwisu, tylko do okna od razu w parametrze podać obiekt typu Client. Ale nie o to chodzi.
Póki co mam to zaimplementowane tak, że wstrzykuję sam konstruktor, a Id klienta przed utworzeniem nowego okna zapisuję sobię do pola w mojej klasie statycznej TempValues, a potem w tym nowo otwartym oknie pobieram sobie tę wartość. Ale to nie jest chyba dobre rozwiązanie.