WPF之MVVM(Step4)——使用Prism(2)

旧地址:http://blog.canself.com/mvvm_prism2/

上一篇简单介绍使用Prism中的NotificationObject,以及DelegateCommand。这一篇更是简单,仅仅描述下DelegateCommand<T>如何使用。

ICommand接口一开始提供的就是带参数的方法,而我们使用时经常会遇到那个参数毫无用处的情况,Prism也就帮了偶们一把啦。当然,Prism并没有忘记我们有时还是要参数滴。

在定义上,我们使用ICommand定义,DelegateCommandDelegateCommand<T>一样。在实例化时有所区别,当然在界面绑定时亦有区别,详细如下:

1
TestParameterCommand = new DelegateCommand<string>(TestParameter);
1
2
3
4
private void TestParameter(string para)
{
TestStr = para + "para";
}
1
<Button Grid.Row="2" Content="TestParameter" Command="{Binding TestParameterCommand}" CommandParameter="{Binding Text, ElementName=textBox}" />

下面是用代码进行Command的调用【带参数】,若不带参数的直接传null即可。

1
2
3
4
private void Button_Click(object sender, RoutedEventArgs e)
{
(this.DataContext as TestViewModel).TestParameterCommand.Execute("testpara");
}

Prism在MVVM方面的介绍就如此啦,主要Prism不仅仅限于MVVM,后期再单独介绍Prism吧,毕竟那可不是个简单的活。


项目代码托管地址:https://wpfmvvm.codeplex.com/