在模型-視圖-視圖模型(MVVM)架構模式中,ViewModel 處理資料和邏輯,而 View 專注於表示。 當 ViewModel 操作需要關閉關聯表單時,就會出現一個常見的挑戰。 既然 ViewModel 不應該直接與 View 交互,那麼如何在遵守 MVVM 原則的情況下實現這種閉包?
有幾種方法可以解決這個問題:
更複雜且符合 MVVM 的方法採用附加屬性。 一個典型的例子是 DialogCloser
方法(如先前接受的解決方案所示):
<code class="language-xml"><Window ... xc:dialogcloser.dialogresult="{Binding DialogResult}" xmlns:xc="clr-namespace:ExCastle.Wpf"></Window></code>
這會將 ViewModel 的 DialogResult
屬性綁定到 DialogCloser
附加屬性。 修改 ViewModel 中的 DialogResult
會自動關閉視窗並更新其 DialogResult
屬性。 這在 MVVM 框架內優雅地管理表單關閉。
最佳方法取決於應用程式的特定要求。 然而,附加屬性技術提供了靈活性、清晰的關注點分離和簡單的實現的令人信服的組合。
以上是ViewModel 如何在保持 MVVM 原則的同時關閉表單?的詳細內容。更多資訊請關注PHP中文網其他相關文章!