Für die Beispiele, die ich hier zur Verfügung gestellt habe, können Sie die Beispielanwendung anzeigen. Es ist sehr einfach und enthält genau einen Dienst und ein Ansichtsmodell mit einer „Mock-Datenbank“. Zwei Ansichten sind an dasselbe Ansichtsmodell gebunden, und Sie können auf einen Kontakt klicken, um dessen Details anzuzeigen. Sie können auch einen Kontakt löschen. Möglicherweise haben Sie zuerst eine Diskussion über Ansicht oder Viewmodel gehört. Im Allgemeinen glaube ich, dass die meisten Entwickler zustimmen, dass eine Ansicht genau ein Ansichtsmodell haben sollte. Es ist nicht erforderlich, mehrere Ansichtsmodelle an eine einzelne Ansicht anzufügen. Wenn Sie über die Trennung von Anliegen nachdenken, ist dies sinnvoll, denn wenn Sie ein „Kontakt-Widget“ auf dem Bildschirm haben, das an ein „Kontaktansichtsmodell“ und ein „Unternehmens-Widget“ gebunden ist, das an ein „Unternehmensansichtsmodell“ gebunden ist, sollten dies separate Ansichten sein, keine einzelne Ansicht mit zwei Ansichtsmodellen. Die Status-Named-Komponente ist in allen Fällen vorhanden. Es zeigt an, ob Gurobi in der Lage war, eine bewährte optimale Lösung für das Modell zu finden. In Fällen, in denen eine Lösung für das Modell gefunden wurde, optimal oder anderweitig, sind die objval und x benannten Komponenten vorhanden. Das Ziel eines zweig-und-gebundenen Algorithmus ist es, einen Wert x zu finden, der den Wert einer realwertigen Funktion f(x), die als objektive Funktion bezeichnet wird, unter einigen satzgebundenen S zulässigen oder Kandidatenlösungen maximiert oder minimiert. Der Satz S wird als Suchraum oder machbarer Bereich bezeichnet.

Der Rest dieses Abschnitts geht davon aus, dass eine Minimierung von f(x) gewünscht wird. diese Annahme kommt ohne Verlust der Allgemeingültigkeit, da man den maximalen Wert von f(x) finden kann, indem man das Minimum von g(x) = .f(x) findet. Ein B&B-Algorithmus arbeitet nach zwei Prinzipien: Die einfachste Lösung ist meiner Meinung nach, den Dialog hinter einer Schnittstelle abzustrahieren und einen Rückruf für die Antwort bereitzustellen. Das Ansichtsmodell kann das Dialogfeld importieren und dann basierend auf einer Änderung des Status oder eines Befehls den Dialogdienst auslösen. Der Rückruf gibt die Antwort zurück, und dann kann die Ansicht entsprechend verarbeitet werden. Meiner Erfahrung nach ist die Idee, sowohl Befehle als auch Modelle oder Eigenschaften zu binden, einfach. Wenn Sie bestimmte Situationen wie das Anzeigen eines Dialogfelds oder das Auslösen einer Animation treffen, kann MVVM verwirrend erscheinen. Wie lösen wir diese gemeinsamen Probleme? MVVM ist kein vollständiges Framework. Es ist ein Muster und kann Teil eines Frameworks sein, aber es ist nur ein Teil der Gesamtlösung für Ihre Anwendungsarchitektur. Es geht nicht darauf ein, was auf Ihrem Server passiert oder wie Ihre Dienste zusammengestellt werden.

Es betont die Trennung von Anliegen, was schön ist. Der Zweck dieses Beitrags besteht darin, eine Einführung in das Model-View-ViewModel (MVVM)-Muster bereitzustellen. Während ich an vielen Diskussionen online über MVVM teilgenommen habe, fiel mir ein, dass Anfänger, die das Muster lernen, sehr wenig zu tun haben und viele widersprüchliche Ressourcen durchwaten, um zu versuchen, es in ihrem eigenen Code zu implementieren.