在WPF中,Command和Binding經常被結合使用來實現MVVM(Model-View-ViewModel)模式,以實現業務邏輯和用戶界面的分離。以下是一個簡單的示例:
首先,在ViewModel中創建一個實現ICommand接口的命令屬性:
public ICommand MyCommand { get; set; }
public MyViewModel()
{
MyCommand = new RelayCommand(ExecuteMyCommand, CanExecuteMyCommand);
}
private void ExecuteMyCommand(object parameter)
{
// 執行命令邏輯
}
private bool CanExecuteMyCommand(object parameter)
{
// 檢查命令是否可以執行的邏輯
return true;
}
接下來,在View中,通過Binding將ViewModel中的命令屬性與控件的Command屬性綁定:
<Button Content="Click Me" Command="{Binding MyCommand}"/>
最后,在View的代碼-behind中,將View的DataContext設置為ViewModel的實例,以便命令能夠正確綁定:
public MyView()
{
InitializeComponent();
DataContext = new MyViewModel();
}
通過以上步驟,當用戶點擊按鈕時,MyCommand命令將在ViewModel中執行ExecuteMyCommand方法,并根據CanExecuteMyCommand方法的返回值來判斷命令是否可執行。這樣就實現了Command和Binding的結合使用。