WPF Caliburn 学习笔记(二)Command(2)

首先解决上一篇博客未解决的问题。上次博客中还有一种命令(BoundCommad)没讲到。

命令源还是不变的。变得是:我们对命令源封装成属性:

命令源ShowMessageCommand:

代码

新建一个MainModel类,对ShowMessageCommand封装成属性。

 public class MainModel
    {
       private readonly ShowMessageCommand _myCommand = new ShowMessageCommand();

       public ShowMessageCommand MyCommand
       {
           get { return _myCommand; }
       }
    }

xaml:

<Window.DataContext>
    <local:MainModel />
</Window.DataContext>
<StackPanel>
    <TextBox Name="message" Width="200" />
    <Button Content="BoundCommand" 
     cal:Message.Attach="BoundCommand MyCommand(message.Text)"/>
</StackPanel>
这里注意是DataContent。DataContext与Resource的区别是
DataContext一般用于绑定数据,相当于数据源。
Resource一般用于对资源的引用,比如 StaticResource,DynamicResource等。
运行效果:
image

CompositeCommands

Caliburn中的命令还有层次关系。

还是用原来的资源。稍作修改。

App.xaml.cs

代码

这里用到了注入容器来实现命令。

ShowTitleMessageCommand.cs类

 

代码

原文地址:https://www.cnblogs.com/dingli/p/1984398.html