Jestem zupełnie nowy w Prism (Composite Wpf). Chcę stworzyć moduł wiadomości dla mojej aplikacji: niewidoczny panel na górze głównego okna, który pojawia się po wywołaniu ShowMessage(string message) (i znika na przykład po 5 sekundach).

Co ja zrobiłem:

  • Utwórz projekt infrastruktury (zawiera tylko jeden interfejs IUIMessagesService)
  • Utwórz projekt modułu:

    • Projekt zawiera kontrolę użytkownika - to panel wiadomości (Widok)

    • Projekt zawiera klasę UIMessagesService, która implementuje IUIMessagesService

    • W klasie modułu tak zrobiłem:

    publiczny UIMessagesModule (regionManager IRegionManager, kontener IUnityContainer) { _menedżer regionu = menedżer regionu; _kontener = kontener; }

I

    public void Initialize()
    {
        _regionManager.RegisterViewWithRegion("UIMessagesRegion", typeof(UIMessagesView));
        _container.RegisterType<IUIMessagesService, UIMessagesService>(new ContainerControlledLifetimeManager());
    }
  • Create shell project (bootstrapper, shell view with region e.t.c)

Pytania:

  • Jak mogę zmienić właściwości mojego widoku w klasie UIMessagesService (w tym przypadku RenderTrasform, aby pokazać panel)? Może potrzebuję zdefiniować te właściwości w modelu widoku? Jak zmienić właściwości modelu widoku?

  • Jak wykonać metody modułu ShowMessages z aplikacji?

2
Y.Yanavichus 10 czerwiec 2011, 14:50

2 odpowiedzi

Najlepsza odpowiedź

W przypadku pierwszego pytania możesz użyć agregacji zdarzeń
Po drugie:
możesz użyć ServiceLocatora lub kontenera, aby rozwiązać swój typ

0
Navid Rahmani 11 czerwiec 2011, 15:14
Nie, dziękuję. Zrobiłem to. Ale są chwile, kiedy nie jestem pewien, czy robię to właściwie. PRISM nie ma ścisłych zasad.
 – 
Y.Yanavichus
25 czerwiec 2011, 17:22

Nie jestem pewien, czy tego właśnie chciałeś. Ale możesz użyć wpfextended toolkit busyindicator. Może to być wyświetlane na górze widoku z błyszczącym ekranem i można nim sterować po prostu przez ustawienie lub powiązanie właściwości zależności IsBusy.

Spójrz na przykład tutaj

0
WPFKK 7 październik 2014, 19:27