get;set properties um werte von comboboxen zu ändern?
-
Hallo,
ich habe 10 Comboboxen und möchte die alle auslesen und werte hinzufügen. Würdet ihr dafür properties nehmen?
pseudocode...
public string Summary
{
get { return this.MyComboBox.SelectemItem.Text;}set { this.MyComboBox.SelecteItem.Text = value;}
}
-
Hmm kommt drauf an ob du die Daten der Combobox unbedingt wegkapseln musst.
Also ob du dafür extra eine Klasse/Struktur brauchst.Wenn ja, dann ist der Weg der korrekte.
-
genau
so wie ich das sehe ist der code in der code behind (wegen dem this.)
stellt sich nur die frage - forms oder wpf ?bei wpf mit mvvm wuerde sich diese frage gar nicht stellen #gg
kann das SelectedItem auch -1 sein ? wenn ja kanns dann knallen ohne sicherheitsabfrage
-
Mr Evil schrieb:
genau
so wie ich das sehe ist der code in der code behind (wegen dem this.)
stellt sich nur die frage - forms oder wpf ?bei wpf mit mvvm wuerde sich diese frage gar nicht stellen #gg
kann das SelectedItem auch -1 sein ? wenn ja kanns dann knallen ohne sicherheitsabfrage
WPF bitte, warum stellt sich dafür die Frage nicht? Fange gerade mit WPF an.
-
Mr Evil schrieb:
bei wpf mit mvvm wuerde sich diese frage gar nicht stellen #gg
bei mvvm kennt man die ui im code nicht - entsprechend ...
-
Mr Evil schrieb:
Mr Evil schrieb:
bei wpf mit mvvm wuerde sich diese frage gar nicht stellen #gg
bei mvvm kennt man die ui im code nicht - entsprechend ...
wenn man WPF schon mit MVVM programmiert, wie greife ich sonst auf die ComboBoxen zu?
-
gar nicht
der viewmodel klasse geht es ueberhaupt nichts an ob die daten in einer listview , combobox , tabcontrol , menu oder sonstwas angezeigt werden (oder gar nicht)
die viewmodel hat nur die daten und die view bindet einfach darauf
und wenn man noch das SelectedItem bindet hat man auch stets die aktuelle selection=> mvvm basics
-
Mr Evil schrieb:
gar nicht
der viewmodel klasse geht es ueberhaupt nichts an ob die daten in einer listview , combobox , tabcontrol , menu oder sonstwas angezeigt werden (oder gar nicht)
die viewmodel hat nur die daten und die view bindet einfach darauf
und wenn man noch das SelectedItem bindet hat man auch stets die aktuelle selection=> mvvm basics
2 Fragen dann:
ich möchte innerhalb der View auf Comboboxen zugreifen: Benutzer wählt aus mehreren comcoboxen aus und den Inhalt möchte ich zusammengebaut in einer Textbox darstellen. Diese Anwendungslogik hat ja nichts im Presenter *Hust* ViewModel zu suchen. Warum geht das nicht mit MVVM? Ich kann mit WPF jederzeit eine Combobox ansprechen :p scheint so als ist mvvm nur was für businessanwendungen mit automatischen Bindings sprich nix programatisches einlesen von Daten in Grids?
-
ne - mvvm ist einfach nur fuer lose kopplung zwischen logic und ui
am ende hat man zwei unabhaengige elemente die man getrennt verwalten und benutzen kann
die view braucht niemanden um zu laufen - nur irgend jemanden der daten bereit stellt
und die viewmodel braucht gar keine ui um zu funktionieren
wie man etwas loest muss man dann separat betrachtender vortei ist das man die ui von einem designer entwerfen lassen kann und dann braucht man es nur koppeln
die logic zb braucht nicht wissen wo die daten anezeigt werden - und ob ueberhaupt
die logic bekommt auch nur von irgendwoher commands wenn etwas zu tun ist , und dann kann es mit den eigenen daten arbeiten ohne das es weiss ob irgendwo ueberhaupt was dargestellt oder geaendert wurdewie man was loest muss man dann im jeweiligen anwendungsfall betrachten
ich verweise einfach mal auf dravere , firefighter und chrische5 - die alle sind auch mitlerweile mvvm juengerzugegeben - zu beginn ist alles etwas komplizierter und vor allem anders zu loesen - aber wenn es einmal klick gemacht hat dann machts auch spass
mir gehts mitlerweile schon so das ich mir gar nicht mehr vorstellen kann es anders zu machen
wenn cih jetzt etwas in einer code behind schreibe bekomm ich mir total dreckig vor irgendwiebei chrische5 hatts noch nicht ganz klickt gemacht - ich glaub er moechte bald bereits das handtuch schmeissen #gg
-
Allem Hype zum trotz. MVVM ist nur praktisch nutzbar, wenn man ein gutes Binding System hat auf das MVVM aufsetzen kann. Dies setzt eine MVVM geeignete Struktur in dem Programm voraus. Davon profitieren hauptsächlich Datenbank bzw. Business-Anwendungen. Alle anderen Anwendungen - das sind sehr viele - werden weiterhin mit mvc bzw. MVP entwickelt werden.
-
wie man was loest muss man dann im jeweiligen anwendungsfall betrachten
ich verweise einfach mal auf dravere , firefighter und chrische5 - die alle sind auch mitlerweile mvvm juenger:p danke dir
aber mal so als nebenfrage, hast du ein vernünftiges tut wo man mal reinschnuppern kann oder ne doku über mvvm, weil komplett steh ich da auch noch nicht drinne...
-
Karle der Zweifler schrieb:
Allem Hype zum trotz. MVVM ist nur praktisch nutzbar, wenn man ein gutes Binding System hat auf das MVVM aufsetzen kann
richtig , und das hat man mit der wpf {o;
ich entwickel auf arbeit und auch private daheim alles nur noch mit mvvm - hype hin oder her - es ist in wpf definitiv praktisch nutzbar , effektiv und wenn man groessere applikationen entwickelt (oder / und daran beteiligt ist) auch deutlich efektiver
schau
ich seh das an einem direkten beispiel in der firma - wir schreiben applikationen in mfc und die neueren in wpf mit c#der arbeitsfluss ist doch so das "ux" eine oberflaeche designed , und das dann final als bilder den entwicklern uebergibt
zudem werden auch alle zu benoetigten und zu benutzenden strings definiert und auch weiter gegeben
das passiert im optimalen fall auch fuer jede sprache separatnun muss ein entwickler die bilder der ui in der applikation umsetzen
wenn der designer noch animationen hier un da haben will - oder diverse effekte die auftreten soll wenn etwas ist - muss er das den entwickler dann noch irgendwie mitteilender riesen nachteil dabei ist - es ist zum einen kaum moeglich vorher etwas zu entwickeln - und der entwickler muss irgendwie die wuensche des designers umsetzen
nun kommt man mit wpf daher
da gibt man dem designer ein wekzeug in die hand womit der das design nicht nur definiert sondern auch schon direkt erstellen kann (und auch wird)
simultan koennen die entwickler bereits die logic entwickeln
beim handover wird ui und code dann nur noch gekoppelt und fertig
im wie bereits erwaehnten optimalen fall wird die ui dann auch dynamisch zur laufzeit in einer lokalisierten version ausgetauschtwas geschwindigkeit an geht - wenn man das pattern einmal richtig benutzt hat - ist man sogar schneller
es ist falsch an zu nehmen es geht nur um das binden von daten einer externe quelle
es geht darum das man logic und ui komplett trennt
das ist dann auch eine perfekte basis fuer unit testses werden mitlerweile mehrere wpf applikationen mit wpf umgesetzt - sobald das programm eine gewisse groesse erreich muss man sich ueber die architektur gedanken machen - wenn man da mi mvvm planen kann ist das wirklich ein riesen vorteil {=
wer kennt das nicht das jemand (der was zu sagen hat) an kommt und noch was geaendert oder hinzugefuegt haben will
zb das eine combobox durch eine liste ausgetauscht wird - oder das etwas geaendert werden soll weils einfach unhandlich ist
da aendert man das nur in der ui ohne im code auch nur ein fetzen code anfassen zu muessenes ist nicht nur einfach ein hype - die vorteile wenn man es einmal verinnerlicht hat sind einfach nicht von der hand zu weisen , und ich spreche noch nichtmal von der architektur ,
gut gesigntes mvvm ist ein traum fuer jeden software architekten
das software architekt office oder solution architekt hat dadurch auch die moeglichkeit teile der application weiter zu verwenden ohne es aendern zu muessen - und das nicht nur unabhaengige klassen sondern auch die objekte die daten zum darstellen bereit stellen
es braucht nur eine definierte uies ist ja nicht so das eine trennung zwischen ui und logic eine neue idee waere - nur erst mit wpf ist es bis zur perfektion treibbar durch eine komplett losen kopplung (ui kennt das wahre datenobjekt nicht , und das datenobjekt kennt keine ui (weiss nichtmal ob es ueberhaupt eine ui gibt)
wenn man es ganz bunt treiben will hat man eine ui und laesst sich ein selbst komplett unbekanntes daten objekt daran koppeln (zb ueber ne factory)Karle der Zweifler schrieb:
Alle anderen Anwendungen - das sind sehr viele - werden weiterhin mit mvc bzw. MVP entwickelt werden.
das kann ich zustimmen bei nicht-wpf applikationen
ich seh es in der eigenen firma , unsere applikationen werden weiltweit vertrieben und in 29 sprachen uebersetzt - und ist auch sehr bekannt (braeuchte nur den firmen namen sagen , aber hier braucht keiner wissen wo ich arbeite , lediglich chrische5 koennte es erfahren #gg)
wir entwickeln die neueren applikationen die bereits auf wpf auf ziehen auch nur noch mit mvvm - allein schon weils besser ist fuer die build street angefangen bei ux
(wenn ich an die oem customisierungen der mfc apps denk , ein graus , mit den wpf apps ist das deutlich einfacher und schneller - da freut sich der grosskunde)
-
das kann ich zustimmen bei nicht-wpf applikationen
Ich habe WPF erstmal gewählt wegen der einfachen ERstellung von eigenen Controls und Themes/Styles. Da brauche ich kein MVVM. Geht genauso mit WPF Architektur.
-
Hallo
Schau es dir mal an, es ist ein Kulturschock...
chrische
-
Karle der Ungläubige schrieb:
Geht genauso mit WPF Architektur.
was ist eine "wpf architektur" ?
-
Mr Evil schrieb:
Karle der Ungläubige schrieb:
Geht genauso mit WPF Architektur.
was ist eine "wpf architektur" ?
sorry meinte MVP ;P mit MVP ist WPF eben ein Zwischenritt bevors mit MVVM zur WPF Vollendung geht.
-
Hallo
Meine Meinung: Versuch es gleich richtig. Du wirst tausend Fragen haben, aber hier im Forum mit Mr. Evil eine sehr kompetente Person, was MVVM angeht.
chrische
-
hehe - danke chrische
@karl
du siehst das denk ich schon richtig - wpf ist gerade zu predistiniert um es mit mvvm zu verwenden
ich kann mich auch nur anschliessen - versuch es mal - es macht suechtig {= #anfix #gg
-
Mr Evil schrieb:
hehe - danke chrische
@karl
du siehst das denk ich schon richtig - wpf ist gerade zu predistiniert um es mit mvvm zu verwenden
ich kann mich auch nur anschliessen - versuch es mal - es macht suechtig {= #anfix #ggja wegen den routes, commands etc sonst macht wpf kaum sinn hehe ich sträube mich noch bin aber willig ist einfach scheiss viel arbeit...
Also ich hab jetzt hier die links von msdn magazine über mvvm + routed events. Leuchten mir aber noch nicht sooooo ein. Vielleicht hat mir noch jemand gute links für einen mvvm beginner
-
war nochmals gerade auf codeplex und es gibt zu mvvm eine Menge an mvvm frameworks... mind. 5 STück. Welches davon würde denn Mr. Evil empfehlen?
Ich habe vor 6 monaten mit dem entity framework + mvp angefangen. Vllt. gibts ja ein mvvm framework besonders geeignet mit dem ORM tool von MS ?