ÕªÒª:Ϊ½â¾öÊÊÓÃÓÚRIAÓ¦ÓÃϵͳ¿ª·¢µÄÉè¼ÆÄ£Ê½µÄÎÊÌ⣬Ìá³öÒý³öMVVMģʽ¡£¸ÃģʽÓÉÊÓͼ¡¢ÊÓͼģÐÍ¡¢Ä£ÐÍÈý²¿·Ö×é³É£¬Í¨¹ýʵÏÖINotifyPropertyChanged½Ó¿Ú£¬½â¾öÄ£Ð͵½ÊÓͼģÐ͵ÄÊý¾Ý´«µ¼ÎÊÌ⣬ʹģÐͶÀÁ¢ÓÚÊÓͼģÐÍ£¬Í¨¹ýʵÏÖICommand½Ó¿Ú£¬½â¾öÊÓͼÖеÄʼþ°ó¶¨ÎÊÌ⣬½áºÏÊý¾Ý°ó¶¨£¬Ê¹ÊÓͼģÐͶÀÁ¢ÓÚÊÓͼ¡£Í¨¹ýʵÏÖ
Mediatorģʽ(ÖнéÕßģʽ)Íê³ÉÄ£ÐÍÓëÄ£ÐÍÖ®¼äµÄ½»»¥£¬²¢ÔÚÒ»¶¨³Ì¶ÈÉϼõÉÙÄ£ÐÍÓëÄ£ÐÍÖ®¼äµÄñîºÏ¶È¡£
¹Ø¼ü´Ê RIA Silverlight Model-View-ViewModel ÖнéÕßģʽ
1ÒýÑÔ
RIA(Rich Internet Application)¼¼ÊõÊǽüÄêÀ´·¢Õ¹½Ï¿ìµÄʵÏÖWeb2.0Ó¦Óÿª·¢µÄ¼¼Êõ£¬Ó봫ͳµÄWebÓ¦ÓÃÏà±È£¬RIA¼¼Êõ¸ü¼Ó×·Çó¸ü·á¸»µÄÓû§ÌåÑé¡£ÊÊÓ¦ÕâÖֱ仯£¬RIAÓ¦ÓÃϵͳ¿ª·¢¹ý³ÌµÄ·Ö¹¤ÒªÇó¸ü¼ÓϸÖ£¬Ò»²¿·ÖÈ˸ºÔð½çÃæÉè¼Æ£¬Ò»²¿·ÖÈ˸ºÔðÒµÎñÂß¼Éè¼Æ¡£ÕâÖÖ·Ö¹¤Ð´×÷¸øÈí¼þÉè¼ÆÄ£Ê½´øÀ´ÐµÄÒªÇó£¬Ò»·½ÃæÒª±£³ÖϵͳÒ×ÓÚÀí½âºÍά»¤¡¢Á¼ºÃµÄÀ©Õ¹ÐԺ͵ÍñîºÏ¶È£¬ÁíÍâÒ»·½ÃæÒª×·ÇóÒµÎñÂß¼¡¢³ÊÏÖÂß¼ºÍUIÂß¼µÄ·ÖÀ룬ʹµÃ½çÃæÉè¼ÆºÍ³ÌÐò¿ØÖÆ¿ª·¢¿ÉÒÔͬ²½½øÐС£Ä¿Ç°ÔÚRIAÓ¦ÓÃϵͳÖпª·¢Ê¹ÓñȽ϶àµÄÓÐMVC(Model-View-Controller)¡¢MVP(Model-View-Presenter)µÈÉè¼ÆÄ£Ê½£¬µ«ÊÇÕâЩģʽ²¢²»ÄÜÍêÈ«½«UIÉè¼Æ·ÖÀ롣Ϊ´Ë½«³ÊÏÖÂß¼´ÓÊÓͼÖжÀÁ¢³öÀ´£¬Í¬Ê±½«½çÃæÊý¾Ý´ÓÄ£ÐÍÖжÀÁ¢³öÀ´£¬×é³ÉÊÓͼģÐÍ(ViewModel)Ä£¿é£¬ÐγÉÁËMVVM(Model-View-ViewModel)Ä£ÐÍ£¬ÎÒÃÇ¿ÉÒÔÈÏΪMVVMÊÇMVCµÄ±äÖÖ¡£MVVMģʽ²»µ«Äܹ»ÊµÏÖUIÉè¼ÆµÄ·ÖÀ룬¶øÇÒÄܳä·Ö·¢»ÓRIA¼¼ÊõÖеÄÊý¾Ý°ó¶¨µÄ¼¼ÊõºÍÌØµã£¬Ìá¸ßÈí¼þµÄ¸´ÓÃÐÔ¡£
2.Silverlight¼ò½é
SilverlighÊÇÓÉ΢ÈíÍÆ³öµÄ¿çä¯ÀÀÆ÷¡¢¿çƽ̨µÄWebǰ¶ÎÓ¦Óÿª·¢½â¾ö·½°¸£¬ÊÇ΢ÈíRIA²ßÂÔµÄÖ÷ÒªÓ¦Óÿª·¢Æ½Ì¨Ö®Ò»£¬ÒÔä¯ÀÀÆ÷µÄÍâ¹Ò×é¼þ·½Ê½£¬ÌṩWebÓ¦ÓóÌÐòÖжàýÌåÓë¸ß¶È½»»¥ÐÔǰ¶ËÓ¦ÓóÌÐòµÄ½â¾ö·½°¸£¬Í¬Ê±Ò²ÊÇ΢ÈíUX(Óû§ÌåÑé)²ßÂÔÖеÄÒ»»·£¬Ò²ÊÇ΢ÈíÊÓͼ½«ÃÀÊõÉè¼ÆºÍ³ÌÐò¿ª·¢ÈËÔ±µÄ¹¤×÷Ã÷È·ÇзÖÓëе÷ºÏ×÷µÄ·¢Õ¹Ó¦ÓóÌÐòµÄ³¢ÊÔÖ®Ò»¡£
3.MVVM¼ò½é
MVVMģʽÊÇModel-View-ViewModeģʽµÄ¼ò³Æ¡£ÓÉÊÓͼ(View)¡¢ÊÓͼģÐÍ(ViewModel)¡¢Ä£ÐÍ(Model)Èý²¿·Ö×é³É£¬½á¹¹ÈçÏÂͼ¡£Í¨¹ýÕâÈý²¿·ÖʵÏÖUIÂß¼¡¢³ÊÏÖÂß¼ºÍ״̬¿ØÖÆ¡¢Êý¾ÝÓëÒµÎñÂß¼µÄ·ÖÀë¡£

ͼ1 MVVMģʽ¼Ü¹¹Í¼
ʹÓÃMVVMģʽÓм¸´óºÃ´¦£º
1. µÍñîºÏ¡£View¿ÉÒÔ¶ÀÁ¢ÓÚModel±ä»¯ºÍÐ޸ģ¬Ò»¸öViewModel¿ÉÒ԰󶨵½²»Í¬µÄViewÉÏ£¬µ±View±ä»¯µÄʱºòModel¿ÉÒÔ²»±ä£¬µ±Model±ä»¯µÄʱºòViewÒ²¿ÉÒÔ²»±ä¡£
2. ¿ÉÖØÓÃÐÔ¡£¿ÉÒÔ°ÑһЩÊÓͼµÄÂß¼·ÅÔÚViewModelÀïÃæ£¬ÈúܶàViewÖØÓÃÕâ¶ÎÊÓͼÂß¼¡£
3. ¶ÀÁ¢¿ª·¢¡£¿ª·¢ÈËÔ±¿ÉÒÔרעÓëÒµÎñÂß¼ºÍÊý¾ÝµÄ¿ª·¢(ViewModel)¡£Éè¼ÆÈËÔ±¿ÉÒÔרעÓÚ½çÃæ(View)µÄÉè¼Æ¡£
4. ¿É²âÊÔÐÔ¡£¿ÉÒÔÕë¶ÔViewModelÀ´¶Ô½çÃæ(View)½øÐвâÊÔ
4. Ä£ÐÍ¡¢ÊÓͼ¡¢ÊÓͼģÐ͵ķֹ¤
1. ÊÓͼ(View)
ÊÓͼ¸ºÔð½çÃæºÍÏÔʾ¡£Ëüͨ¹ýDataContext(Êý¾ÝÉÏÏÂÎÄ)ºÍViewModel½øÐÐÊý¾Ý°ó¶¨£¬²»Ö±½ÓÓëModel½»»¥¡£
¿ÉÒÔ°ó¶¨Behavior/ComandÀ´µ÷ÓÃViewModelµÄ·½·¨£¬CommandÊÇViewµ½ViewModelµÄµ¥ÏòͨÐУ¬Í¨¹ýʵÏÖSilverlightÌṩµÄIComand½Ó¿ÚÀ´ÊµÏְ󶨣¬ÈÃView´¥·¢Ê¼þ£¬ViewModelÀ´´¦Àíʼþ£¬ÒÔ½â¾öʼþ°ó¶¨¹¦ÄÜ¡£
2. ÊÓͼģÐÍ(ViewModel)
ÊÓͼģÐÍÖ÷Òª°üÀ¨½çÃæÂß¼ºÍÄ£ÐÍÊý¾Ý·â×°£¬Behavior/CommandʼþÏìÓ¦´¦Àí£¬°ó¶¨ÊôÐÔ¶¨ÒåºÍ¼¯ºÏµÈ¡£ËüÊÇViewºÍModelµÄÇÅÁº£¬ÊǶÔModelµÄ³éÏ󣬱ÈÈ磺ModelÖÐÊý¾Ý¸ñʽÊÇ¡°ÄêÔÂÈÕ¡±£¬¿ÉÒÔÔÚViewModelÖÐת»»ModelµÄÊý¾ÝΪ¡°ÈÕÔÂÄꡱ¹©ViewÏÔʾ¡£
ʵÏÖÊÓͼģÐÍÐèҪʵÏÖSilverlightÌṩµÄ½Ó¿ÚINotifyPropertyChanged£¬
INotifyPropertyChanged½Ó¿ÚÓÃÓÚʵÏÖÊôÐԺͼ¯ºÏµÄ±ä¸ü֪ͨ(Change Notifications)¡£Ê¹µÃÔÚÓû§ÔÚÊÓͼÉÏËù×öµÄ²Ù×÷¶¼¿ÉÒÔʵʱ֪ͨµ½ÊÓͼģÐÍ£¬´Ó¶øÈÃÊÓͼģÐͶÔÏóÓеÄÄ£ÐͽøÐÐÕýÈ·µÄÒµÎñ²Ù×÷¡£
ViewµÄ´úÂëÒþ²Ø(Code-Behind)²¿·Ö¿ÉÄܰüº¬½çÃæÂß¼»òÕßÓ¦ÓÃÂß¼µÄ´úÂ룬ÕâЩ´úÂë»áºÜÄѽøÐе¥Ôª²âÊÔ£¬Ó¦¸ù¾Ý¾ßÌåÇé¿ö¾¡Á¿±ÜÃâ¡£

ͼ2 View¡¢ViewModelºÍModelµÄ½»»¥Í¼
Mediatorģʽ
¶Ô²»Í¬View¡¢ViewModelÖ®¼äµÄ²ÎÊý´«µÝ£¬Ò»°ãͨ¹ýʼþʵÏÖÊý¾Ý´«µÝ£¬Ò²¿ÉÒÔ¶¨ÒåÈ«¾Ö¾²Ì¬±äÁ¿À´½øÐÐÊý¾Ý¹²Ïí£¬ÔÚMVVMÀÎÒÃÇ¿ÉÒÔʹÓÃMediatorģʽ(ÖнéÕßģʽ)½øÐиúÓÅÑŵĴ¦Àí¡£¿ÉÒÔ¼òµ¥µÃÀí½âΪ²»Í¬µÄViewModel»òÕßViewÐèÒª½øÐÐÁ˲Ù×÷Ö®ºó£¬ÐèÒªÆäËûViewModel»òÕßView½øÐÐÏàÓ¦µÄÆäËû²Ù×÷»òÕßÊý¾Ý¸üУ¬¶øÖнéÀà¿ÉÒÔ׼ȷµÃ½«¸üÐÂ׼ȷµÃ֪ͨµ½ÕýÈ·µÄViewModel£¬Í¬Ê±ÖнéÕß²¢²»¹ØÐÄViewModel»òÕßViewµÄÈκβÙ×÷»òÕßÊý¾Ý¸üС£

ͼ3 ViewModelͨ¹ýMediatorģʽÓëÆäËûViewModelµÄ½»»¥Í¼
3. Ä£ÐÍ(Model)
ModelÓëMVCģʽһÑù£¬ModelÓÃÓÚ·â×°ÓëÓ¦ÓóÌÐòµÄÒµÎñÂß¼Ïà¹ØµÄÊý¾ÝÒÔ¼°¶ÔÊý¾ÝµÄ´¦Àí·½·¨¡£Ëü¾ßÓжÔÊý¾ÝÖ±½Ó·ÃÎʵÄȨÀû£¬ÀýÈç¶ÔÊý¾Ý¿âµÄ·ÃÎÊ£¬Model²»ÒÀÀµÓÚViewºÍViewModel£¬Ò²¾ÍÊÇ˵£¬Ä£ÐͲ»¹ØÐĻᱻÈçºÎÏÔʾ»òÊÇÈçºÎ±»²Ù×÷£¬Ä£ÐÍÒ²²»Äܰüº¬ÈκÎÓû§Ê¹ÓõÄÓë½çÃæÏà¹ØµÄÂß¼¡£ModelÔÚʵ¼Ê¿ª·¢Öиù¾Ýʵ¼ÊÇé¿ö¿ÉÒÔ½øÐÐϸ·Ö¡£±ÈÈçÔÚ¹ãÖÝÊгÇÏç¹æ»®×ÊԴƽ̨¾Í½«Model½«ServiceºÍReposiroty½áºÏΪWCF·þÎñÓÉViewModel½øÐе÷Óá£
ͼ4 ModelµÄϸ·Ö²ã´Î¹ØÏµ
ΪÁ˸üºÃµÄ˵Ã÷MVVMģʽ£¬Í¼5ÊǹãÖÝÊгÇÏç¹æ»®×ÊԴƽ̨ʵÏÖMVVMģʽÉè¼ÆµÄÀà½á¹¹Í¼¡£

ͼ5 MVVMģʽÀà½á¹¹Í¼
4.SilverlightºÍMVVMģʽµÄ×ÛºÏÓ¦ÓÃʵ¼ù
¹ãÖÝÊгÇÏç¹æ»®¿Õ¼ä×ÊԴƽ̨
Ò»¡¢ ¸ÅÊö
¹ãÖÝÊгÇÏç¹æ»®¿Õ¼ä×ÊԴƽ̨ÊÇÒ»¸öÃæÏò³ÇÊй滮µÄGISϵͳ¡£Í¨¹ý¶Ô¸ÃϵͳµÄ½¨ÉèÒÔÂú×ã¹æ»®±àÖÆ¡¢¹æ»®¹ÜÀí¡¢¹æ»®ÊµÊ©¶¯Ì¬¼à¿ØÈý·½ÃæµÄÐèÇóʵÏÖGISÓëOA¡¢GISÓëCADµÄͼÎÄÒ»Ì廯¡£Ìá¸ß³ÇÊй滮¿ÆÑ§ÐԺ͹ÜÀíˮƽ£¬ÊµÏÖͳһ¹æ»®¡¢×ÊÔ´ÕûºÏ¡¢ÐÅÏ¢¹²Ïí¡¢¿ª·Å·þÎñµÈÄ¿±ê¡£
¶þ¡¢¼¼ÊõÌØµã
ÏîÄ¿²ÉÓÃWebService¼¼Êõ´î½¨¿çƽ̨µÄ¡¢¿É»¥²Ù×÷µÄ·Ö²¼Ê½Ó¦ÓóÌÐòƽ̨£¬²ÉÓÃSilverlight¼¼Êõ£¬Ê¹ÓÃÁËMVVMģʽ£¬½áºÏGIS
Server·þÎñºÍWeb Service·þÎñµÈ½øÐпª·¢¡£
ϵͳÖжÔÓÚµØÍ¼ÏÔʾ²¢²»ÊÇÿһ¸ö·þÎñ¶¼ÐèÒª¼ÓÔØ£¬·þÎñµÄµØÖ·£¬¼ÓÔØÇé¿ö£¬Ä¬ÈÏÉèÖÃÕâЩ¿ÉÒÔ×÷Ϊһ¸öµØÍ¼·þÎñÊý¾ÝÄ£ÐÍ(MapServiceInfo)¡£
ÏÂͼΪƽ̨¶ÔµØÍ¼·þÎñÊý¾ÝÄ£Ð͵IJ¿·Ö¶¨Òå

ͼ6 µØÍ¼Êý¾ÝÄ£ÐͲ¿·Ö¶¨Òå
ΪÁËʵÏÖ¶Ô¸ÃModelµÄ¿ØÖÆ£¬½¨Á¢ÊÓͼģÐÍMapViewModel£¬ÔÚÆäÖÐʵÏÖ¶ÔÊý¾ÝÄ£Ð͵ļÓÔØÄ¬ÈÏͼ²ã¡¢Ôö¼Ó·þÎñͼ²ã£¬´ò¿ª\¹Ø±Õͼ²ãµÈ²Ù×÷µÄ¿ØÖÆ£¬·þÎñµÄ»ñÈ¡µÈ²Ù×÷¡£Óû§¶ÔÊÓͼµÄÈκβÙ×÷¶¼»á¶ÔÊÓͼģÐͽøÐÐÒ»´Î±ä¸ü֪ͨ£¬´Ó¶øÊ¹ÊÓͼģÐÍ¿ÉÒÔʵʱ¶ÔÄ£ÐͽøÐÐÏàÓ¦²Ù×÷¡£
ʵÏÖÊÓͼģÐÍMapViewModelÐèҪʵÏÖSilverlightÌṩµÄ½Ó¿ÚINotifyPropertyChanged£¬
INotifyPropertyChanged½Ó¿ÚÓÃÓÚʵÏÖÊôÐԺͼ¯ºÏµÄ±ä¸ü֪ͨ(Change Notifications)¡£Ê¹µÃÔÚÓû§ÔÚÊÓͼÉÏËù×öµÄ²Ù×÷¶¼¿ÉÒÔʵʱ֪ͨµ½ÊÓͼģÐÍ£¬´Ó¶øÈÃÊÓͼģÐͶÔÏóÓеÄÄ£ÐͽøÐÐÕýÈ·µÄÒµÎñ²Ù×÷¡£
ÏÂͼΪ¹ãÖÝÊгÇÏç¹æ»®×ÊԴƽ̨ÖжÔINotifyPropertyChanged½Ó¿ÚµÄʵÏÖ·½Ê½£º

ͼ7 MapViewModel¶Ô½Ó¿ÚINotifyPropertyChangedµÄʵÏÖ
½¨Á¢ÍêÊÓͼģÐÍÖ®ºó£¬ÔÚ¸÷¸öÊÓͼÖÐͨ¹ýDataContext(Êý¾ÝÉÏÏÂÎÄ)ÓëÊÓͼģÐͽøÐа󶨣¬Í¨¹ýÏàÓ¦µÄCommand¶ÔÊÓͼģÐͽøÐвÙ×÷¡£CommandÊÇViewµ½ViewModelµÄµ¥ÏòͨÐУ¬Í¨¹ýʵÏÖSilverlightÌṩµÄIComand½Ó¿ÚÀ´ÊµÏְ󶨣¬ÈÃView´¥·¢Ê¼þ£¬ViewModelÀ´´¦Àíʼþ£¬ÒÔ½â¾öʼþ°ó¶¨¹¦ÄÜ¡£IComand½Ó¿Ú½á¹¹ÈçÏÂËùʾ£º

ͼ8 ICommand½Ó¿ÚÃèÊö
ÓÉÓÚSilverlight¶ÔICommandµÄ¹¦ÄÜÖ§³Ö²¢²»¶à£¬Îª´ËÐèÒª¶ÔICommand½Ó¿Ú½øÐÐʵÏÖÀ´ÌṩViewºÍViewModelÖ®¼äµÄʼþ°ó¶¨¡£ÏÂͼΪ¹ãÖÝÊгÇÏç¹æ»®×ÊԴƽ̨ÖжÔICommand½Ó¿ÚµÄʵÏÖ·½Ê½£º

ͼ9 ¶ÔICommand½Ó¿ÚµÄʵÏÖ
È»ºóͨ¹ýÔÚMapViewModelÖÐÌí¼ÓÏà¹ØICommand½Ó¿ÚµÄÊôÐÔ£¬ÒÔ¹©View½øÐаó¶¨Ê¹Óá£ÈçÏÂͼ£º

ͼ10 ÔÚViewModelÖÐÌí¼ÓÏà¹ØICommandÊôÐÔ
¾ßÌåµÄÀà½á¹¹Í¼Èçͼ7Ëùʾ¡£
½Ó×ÅÍê³ÉView¶ÔMapViewModelµÄ°ó¶¨²Ù×÷£¬ÕâÀïÎÒÃÇ¿ÉÒÔͨ¹ýMicrosoft Expression
BlendÕâ¸ö¹¤¾ßÀ´Íê³É¡£ÒÔͼ²ã¹ÜÀíÃæ°åΪÀý£¬ÏÂͼÊÇͨ¹ýBlend¹¤¾ßÉè¼ÆºÃµÄView½çÃæ£º

ͼ11 ͨ¹ýBlendÉè¼ÆºÃView
½Ó×Å¿ªÊ¼½øÐÐViewµ½ViewModelµÄ°ó¶¨¹ý³Ì£¬ÔÚÏà¹ØViewÖÐÑ¡ÔñDataContext£¬Ñ¡ÔñData
Binding¡£º

ͼ11 ¸øView°ó¶¨DataContext
ÔÚµ¯³öµÄÃæ°åÖÐÑ¡ÔñData Field·ÖÒ³£¬Ñ¡ÔñData sourcesµÄFields£¬ÕÒµ½ÃûΪMapViewModelµÄÏµã»÷OK°´Å¥£¬Íê³ÉView¶ÔViewModelµÄ°ó¶¨¡£

ͼ12 Ñ¡ÔñÒª°ó¶¨µÄViewModel
³ýÁ˰ó¶¨ViewModelÖ®Í⣬»¹ÐèÒª¶ÔÏà¹ØµÄʼþ½øÐа󶨣¬ÔÚµ±Ç°View½çÃæÖÐÌṩÁË¡°Ôö¼ÓÊý¾Ý¡±µÄ¹¦Äܰ´Å¥£¬Ñ¡Ôñ¹¦Äܰ´Å¥£¬ÔÚÓÒ²àµÄÊôÐÔÃæ°åÖÐÕÒµ½Miscellaneous·ÖÒ³£¬Ñ¡ÔñCommandÊôÐÔ£¬ÓÒ¼ü´ò¿ªÉèÖÃÃæ°å£¬Ñ¡ÔñData
Binding¡

ͼ13 °ó¶¨Command(Ò»)
ÔÚµ¯³öµÄÃæ°åÖÐÑ¡ÔñÒª½øÐа󶨵ÄCommandµã»÷OK°´Å¥½øÐа󶨣¬ÈçͼËùʾ

ͼ14 Ñ¡ÔñÒª°ó¶¨µÄCommand(¶þ)
ÔÚView°ó¶¨ViewModelµÄ¹ý³ÌÖÐÊÇÍêÈ«¿ÉÒÔÓɽçÃæÉè¼ÆÊ¦À´½øÐвÙ×÷£¬¶ø²»½øÐÐÈκαàÂëµÄ¡£ÖÁ´Ë£¬Íê³ÉMVVMÉè¼ÆÄ£Ê½µÄÒ»¸ö¹ý³Ì¡£
Ч¹ûͼ

ͼ15 ¹ãÖÝÊгÇÏç¹æ»®¿Õ¼ä×ÊԴƽ̨
Èý¡¢¾ßÌåʵÏÖ
ÈçÏÂÊÓͼ¾ùʹÓÃMapViewModel×÷ΪÊÓͼģÐÍÀ´²Ù×÷Êý¾ÝÄ£ÐÍÍê³ÉÏà¹Ø²Ù×÷¡£
1)ͼ²ã¹ÜÀíÃæ°å£ºÓû§Í¨¹ý´ËÃæ°å½øÐÐͼ²ã·þÎñµÄ²é¿´ºÍ¼ÓÔØ²Ù×÷¡£¶ÔÓÚÒѾ¼ÓÔØµÄ·þÎñÒÔºìÉ«×ÖÌåÏÔʾ¡£Óû§¿ÉÒÔͨ¹ýÉèÖÃÊý¾ÝÌí¼ÓλÖÃÀ´¾ö¶¨·þÎñÌí¼ÓÔÚÄÄÒ»²ã¡£

ͼ16 ͼ²ã¹ÜÀíÃæ°å
2)ͼ²ã¿ØÖÆÃæ°å:Óû§Í¨¹ý´ËÃæ°å½øÐÐͼ²ãµÄÏÔʾ¿ØÖÆ¡£ÌṩÈȵãͼ²ã¡¢ºÍͼ²ãËÑË÷¹¦Äܼò»¯Óû§²éÕÒͼ²ãµÄ²Ù×÷¡£

ͼ17 ͼ²ã¿ØÖÆÃæ°å
3)Ìõ¼þ×éºÏ²éѯ£ºÓû§Í¨¹ýÔÚÃæ°åÖÐÑ¡ÔñÌØ¶¨µÄͼ²ã·þÎñ£¬Ñ¡ÔñËùÐè×ֶι¹½¨²éѯÌõ¼þÍê³É²éѯ²Ù×÷£¬´Ó¶ø»ñÈ¡ÏàÓ¦µÄÊý¾Ý½á¹û¡£¶ÔÏÔʾµÄ½á¹û£¬Óû§¿ÉÒÔµã»÷½á¹ûÏµØÍ¼½«×Ô¶¯¶¨Î»ÖÁÑ¡ÖÐÏî¡£

ͼ18 Ìõ¼þ×éºÏ²éѯ²Ù×÷

ͼ19 Ìõ¼þ×éºÏ½á¹û²Ù×÷
½áÓï
MVVMģʽºÜºÃµÄ½«UIÂß¼·ÖÀ뿪À´£¬Ê¹µÃÔÚ¿ª·¢¹ý³ÌÖÐÉè¼ÆÊ¦ºÍ´úÂë±àдԱÖпÉÒԺܺõØÍê³É×Ô¼ºµÄÖ°Ôð¡£´Ó¶ø±£Ö¤Á˳ÌÐòµÄµÍñîºÏ£¬¿ÉÖØÓÃÐÔ£¬¶ÀÁ¢¿ª·¢ºÍ¿É²âÊÔÐÔ¡£ |