表示器代码如图 9 中所示。您可以看到表示器构建了表示模型,并通过 Model 属性将其公开给视图。从视图调用 AddCommandHandler 时(响应第二个按钮 Click 事件),它会向模型的 CanExecuteTargets 和 ExecuteTargets 添加一个订户。这些订阅方法是表示器中的简单方法,它们分别返回 true 并显示 MessageBox。
public class SimpleViewPresenter { public SimpleViewPresenter() { Model = new SimpleViewPresentationModel(); } public SimpleViewPresentationModel Model { get; set; } public void AddCommandHandler() { Model.CookDinnerCommand.CanExecuteTargets += CanExecuteHandler; Model.CookDinnerCommand.ExecuteTargets += ExecuteHandler; } bool CanExecuteHandler() { return true; } void ExecuteHandler(string msg) { MessageBox.Show(msg); }}本 例显示数据绑定、UI 模式和自定义命令的组合将为您带来清晰独立的命令途径,可以摆脱路由命令的限制。由于命令是通过绑定以 XAML 形式挂接的,您甚至可以通过此方式完全用 XAML 定义视图(没有代码隐藏)、从 XAML 使用绑定命令触发表示模型中的操作、启动您原本需要表示模型代码隐藏执行的操作。
您 需要控制器来构建视图并为其提供表示模型,但您不用代码隐藏就能编写交互视图。如果无需代码隐藏,在代码隐藏文件中添加相互纠结、不可测试的复杂代码的机 率会大大降低,在 UI 应用程序中,这种情况经常出现。此方式刚在 WPF 中试用。但它的确值得考虑,您应该了解更多的示例。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wmjcom/archive/2009/05/22/4208406.aspx
上一页 [1] [2] [3] [4] [5] [6]