Silverlight 3.0和MVVM模式

时间:2010-09-15 06:17:18

标签: silverlight-3.0

我正在使用Silverlight 4来处理这篇文章。 link text

但我正在使用Silverlight 3.但是对于按钮,我们无法找到命令

Command =“{Binding Path = DataContext.GetPerson,ElementName = LayoutRoot}”

<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="53,112,0,0" Name="button1"
                VerticalAlignment="Top" Width="75"  Command="{Binding Path=DataContext.GetPerson, ElementName= LayoutRoot }" 
                    CommandParameter="{Binding Path=Age, ElementName=hi}"  />

所以在Silverlight 3中我该怎么做才能获得按钮的这个Command属性

任何帮助都会很棒

2 个答案:

答案 0 :(得分:0)

命令是将操作与控件(例如按钮)相关联的可绑定方式。 该命令控制着两件事:

  • 是否可以执行
  • 执行时该怎么办

实施ICommand界面

他们在WPF中已经存在了一段时间,并且最近被添加到SL4

如果希望代码在SL3中工作,则必须将IsEnabled属性绑定到视图模型中与该命令的CanExecute实现具有相同逻辑的属性。 并为具有相同逻辑的按钮添加Click事件处理程序具有命令的Execute

此外,此按钮将参数传递给命令(CommandParameter),您必须手动传递此参数

答案 1 :(得分:0)

您可以使用像prism这样的框架,将相关的dll添加到您的项目中,然后像这样添加对页面顶部的引用

xmlns:prism="clr-namespace:Microsoft.Practices.Composite.Presentation.Commands;assembly=Microsoft.Practices.Composite.Presentation"

然后在按钮上声明监狱属性

<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="53,112,0,0" Name="button1"
        VerticalAlignment="Top" Width="75"  Command="{Binding Path=DataContext.GetPerson, ElementName= LayoutRoot }" 
        prism:Click.Command={Binding SomeCommand}
        prism:Click.CommandParameter="{Binding Path=Age, ElementName=hi}"  />