在不使用 System.Windows.Input.ICommand 的情况下,在 WPF 中实现 MVVM 模式可以通过以下方式实现:
以下是一个简单的示例:
首先,在 View 层的 XAML 文件中创建一个按钮,并为其添加一个事件触发器:
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding MyCommand}" CommandParameter="{Binding ElementName=MyButton}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
其中,i
是 System.Windows.Interactivity
命名空间的 XML 命名空间声明,需要在 XAML 文件的根元素中添加:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
接下来,在 ViewModel 层中创建一个命令,并在其中实现业务逻辑:
public class MyViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private ICommand myCommand;
public ICommand MyCommand
{
get
{
if (myCommand == null)
{
myCommand = new RelayCommand(param => this.ExecuteMyCommand(param));
}
return myCommand;
}
}
private void ExecuteMyCommand(object parameter)
{
// 在此处实现业务逻辑
}
}
最后,将 ViewModel 层的实例绑定到 View 层的 DataContext 中:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.DataContext = new MyViewModel();
}
}
这样,当用户点击按钮时,就会触发 ViewModel 层中的命令,并执行相应的业务逻辑。
领取专属 10元无门槛券
手把手带您无忧上云