簡化 MVVM 指令處理:RelayCommand 方法
MVVM 架構通常需要大量命令,導致重複的 ICommand 介面實作。這可能既麻煩又低效。
一個常見的解決方法是建立一個 ICommand 類,其中包含用於執行和可執行檢查的委託方法。 然而,這仍然需要管理單獨的代表。
更優雅的解決方案:RelayCommand 模式
Karl Shifflet 的 RelayCommand 模式提供了更完善的解決方案。它利用通用委託來執行執行和可執行邏輯,從而消除了對不同委託類別的需求。
<code>public class RelayCommand : ICommand { private readonly Predicate<object> _canExecute; private readonly Action<object> _execute; // Constructor }</code>
在 MVVM ViewModel 中實作 RelayCommand
將 RelayCommand 整合到 MVVM 結構中非常簡單:
<code>public class MyViewModel { private RelayCommand _doSomething; public ICommand DoSomethingCommand { get { if (_doSomething == null) { _doSomething = new RelayCommand( p => CanDoSomething(), p => DoSomeImportantMethod()); } return _doSomething; } } }</code>
使用 RelayCommand 的優點
RelayCommand 模式提供了一種簡潔高效的方法來管理 WPF MVVM 應用程式中的命令,使其成為任何開發人員工具箱的寶貴資產。
以上是RelayCommand 模式如何簡化 MVVM 中的 ICommand 實作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!