
正文
WPF委托命令DelegateCommand的传参方式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
首先引用 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}}" >
后台代码:
// code-behind构造函数中添加: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;
}








