2011-07-21 12 views
5

Szukam najlepszych praktyk dla zaawansowanej implementacji logicznej interfejsu użytkownika. Pracuję nad aplikacją Windows Forms, ale uważam, że powinny istnieć ogólne wzorce rozwiązywania tego problemu na dowolnej platformie.Jak zaimplementować wyrafinowaną logikę interfejsu użytkownika?

Mam wiele formantów w moim formularzu, są listy, przyciski, tabele i widok drzewa. Chodzi o to, że w zależności od "kontekstu" niektóre elementy sterujące są włączone, podczas gdy inne są wyłączone. Niektóre z nich mogą zapewnić pewne funkcje na chwilę, a inne nie.

Obecnie jest zaimplementowany "tak jak jest". Obsługuję zdarzenia, sprawdzam zmiany (wybrano nowy węzeł drzewa, wybraną parę węzłów itp.), A następnie decyduję, czy niektóre kontrolki muszą być wyłączone lub włączone. Nie podoba mi się to podejście, ponieważ kod formularza wygląda na skomplikowany. A jeśli potrzebuję dodać więcej logiki, staje się jeszcze bardziej skomplikowana. Jestem bardzo zmartwiony, ponieważ jesteśmy dość zwinni, a nowe funkcje lub wiele zmian to codzienna norma.

Mam zamiar oddzielić tę logikę na części (cechy), gdzie każda funkcja jest obiektem, który wie, jak sprawdzić jej stan iw zależności od tego stanu włączyć lub wyłączyć odpowiednie elementy sterujące.

Naprawdę nie chcę wymyślać niczego nowego i próbować znaleźć jakieś dobre pomysły, które są szeroko stosowane. Proszę nie polecać jednej metody metody UpdateUI(), uważam, że nic nie zmieni w dłuższej perspektywie.

Dzięki.

Odpowiedz

2

Wiązanie danych interfejsu użytkownika i enkapsulacja logiki biznesowej do obiektów biznesowych jest drogą do zrobienia. CSLA.NET framework by Rocky Lhotka ma wiele świetnych funkcji wbudowanych, a także wiele przykładowych aplikacji. Używałem go w średniej wielkości projekcie WPF i ogromnej aplikacji WinForm/CAB i naprawdę mi się podobało.

+0

Dzięki, zobacz! – agibalov

Powiązane problemy