首先引用 Microsoft.Practices.Prism
MVVM模式代码如下:
XAML代码:
<!-- 无参方式 -->
<Button Content="Test Command" Command="{Binding TestCommand}" />
<!-- 将自己作为参数 -->
<Button Content="Test Command2" Command="{Binding TestCommand2}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.Self}}" >
<!-- 将父元素作为参数 -->
<Button Content="Test Command3" Command="{Binding TestCommand3}" CommandParameter="{Binding RelativeSource={x:Static RelativeSource.TemplatedParent}}" >
后台代码:
this.DataContext = new ViewModel();
ViewModel代码:
// ViewModel 构造函数
public ViewModel()
{
CallCOmmand1 = new DelegateCOmmmand(Call1);
CallCOmmand2 = new DelegateCOmmmand<Object>(Call2);
CallCOmmand3 = new DelegateCOmmmand<Object>(Call3);
}
// 命令声明
public DelegateCommand CallCommand { get; private set; }
public DelegateCommand<Object> CallCommand2 { get; private set; }
public DelegateCommand<Object> CallCommand3 { get; private set; }
// 命令实现
public void Call1()
{
}
public void Call2( Object obj )
{
Button button = obj as Button;
}
public void Call3( Object obj )
{
ParentType parent = obj as ParentType;
}