Silverlight命令绑定

Silverlight命令绑定,silverlight,binding,command,dependency-properties,Silverlight,Binding,Command,Dependency Properties,我正在查看以下xaml: <Grid x:Name="LayoutRoot" Background="White"> <Button Content="Say Hello..." VerticalAlignment="Center" HorizontalAlignment="Center" my:ButtonService.Command="{Binding Path=SayHello}"

我正在查看以下xaml:

   <Grid x:Name="LayoutRoot" Background="White">
        <Button Content="Say Hello..." VerticalAlignment="Center" 
                HorizontalAlignment="Center" 
                my:ButtonService.Command="{Binding Path=SayHello}"
                my:ButtonService.CommandParameter="Bob"/>
    </Grid>

我想了解命令是如何在没有代码隐藏的情况下绑定的。 [my:::指向定义[按钮服务]静态类的dll,该类反过来将[CommandProperty]定义为从属属性

我希望这是代码背后的一部分,而事实上它是在它自己的类ButtonService中

有人能给我解释一下它是如何工作的吗


完整代码是:

ButtonService类将具有一种称为“AttachedProperty”的特殊形式的依赖属性。将值分配给此属性时,将执行元数据为此依赖项属性定义的回调

它是
ButtonService
类中的回调代码,该类将执行所有连接到按钮单击事件和所提供的
ICommand
值的
CanExecuteChanged
事件

这种“命令”模式的全部要点是避免将代码放在代码后面。执行某些处理并确定何时可以完成此类处理的代码被推回正在绑定的数据对象(通常称为“ViewModel”)。其目的是创建更易于测试的代码,因为测试没有UI的代码要容易得多


请注意,如果您使用Silverlight 4,则
命令
命令参数
现在由
按钮
实现,因此在SL 4中不需要此服务。

谢谢AnthonyWJones–您对单击的重新布线的看法是正确的,但我仍然不明白如何将一个位置,在按钮声明的XAML部分的中间,这个“My:ServiceButton .Cube”不是按钮的一部分。