• <menu id="w2i4a"></menu>
  • logo DevExpress WinForms使用教程

    文檔首頁>>DevExpress WinForms使用教程>>DevExpress Winforms使用技巧教程:MVVM增強(qiáng)功能

    DevExpress Winforms使用技巧教程:MVVM增強(qiáng)功能


    下載DevExpress v20.1完整版    DevExpress v20.1漢化資源獲取

    DevExpress Winforms Controls 內(nèi)置140多個UI控件和庫,完美構(gòu)建流暢、美觀且易于使用的應(yīng)用程序。想要體驗(yàn)?點(diǎn)擊下載>>

    全新的服務(wù)

    MVVM模式建議您將數(shù)據(jù)管理代碼與UI分開——在獨(dú)立于View的ViewModels中,這意味著如果您需要以標(biāo)簽的形式打開View,或關(guān)閉當(dāng)前打開的對話框,或在View層上執(zhí)行其他任何操作,則執(zhí)行這些操作的ViewModel代碼應(yīng)獨(dú)立于View。換句話說 "open a new tab" 命令不應(yīng)引用View控件實(shí)例,相反應(yīng)用程序應(yīng)該能夠自動定位適合該操作的UI元素(例如,顯示標(biāo)簽的Document Manager組件)。

    DevExpress MVVM Framework允許您在服務(wù)的幫助下實(shí)現(xiàn)此邏輯,您需要做的就是注冊適當(dāng)?shù)腟ervice,然后在ViewModel中調(diào)用其公共方法??蚣軐⒆詣诱业胶线m的View控件,并將Service方法“轉(zhuǎn)換”為特定的控件命令。

    使用v20.1,我們通過三個附加服務(wù)擴(kuò)展現(xiàn)有服務(wù)集合:

    • WindowService - 允許您將Views作為單獨(dú)的XtraForms,RibbonForms或Flyouts打開。
    • CurrentWindowService - 允許您從ViewModel層管理窗口(窗體),該服務(wù)提供更改表單窗口狀態(tài)或關(guān)閉任何激活窗口的方法。
    • CurrentDialogService - 使用此服務(wù)來管理打開的對話框,允許您關(guān)閉具有特定DialogResult的對話框。
    新教程演示模塊

    對于不熟悉其基本概念的人而言,MVVM可能具有挑戰(zhàn)性。 為了簡化學(xué)習(xí)過程,技術(shù)團(tuán)隊(duì)在“ MVVM Best Practices”演示中添加了“ Simple ToDo Application”模塊。該模塊使用一個示例應(yīng)用程序來演示基本的MVVM概念,例如數(shù)據(jù)綁定和ViewModel通信。 "Walkthrough" 演示將過程分解為"bite-sized"的步驟,每個步驟都提供描述和相關(guān)代碼,因此您可以輕松地跟蹤空表單如何變成視圖、數(shù)據(jù)管理代碼如何成為ViewModel類、以及各個單獨(dú)的層相互通信。

    DevExpress Winforms使用技巧教程

    DevExpress 5月線上公開課報名火熱開啟,教你入門報表(Report)控件

    DevExpress技術(shù)交流群2:775869749      歡迎一起進(jìn)群討論

    掃描關(guān)注DevExpress中文網(wǎng)微信公眾號,及時獲取最新動態(tài)及最新資訊

    DevExpress中文網(wǎng)微信
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();