當我實現ICommand
接口,下面的方法創建ICommand總是需要一個對象作爲參數嗎?
#region ICommand Members
public bool CanExecute(object parameter)
{
}
public event EventHandler CanExecuteChanged;
public void Execute(object parameter)
{
}
#endregion
有趣的部分是
public void Execute(object parameter)
{
}
很簡單,因爲它表示,它預計1個參數。如果我不需要傳遞參數怎麼辦?在我的ViewModel我有以下代碼
public class DownloadViewModel : BaseViewModel
{
public ICommand BrowseForFile { get; set; }
public string File { get; set; }
public DownloadViewModel()
{
BrowseForFile = new RelayCommand(new Action<object>(OpenDialog));
}
private void OpenDialog(object o)
{
var dialog = new System.Windows.Forms.FolderBrowserDialog();
System.Windows.Forms.DialogResult result = dialog.ShowDialog();
File = dialog.SelectedPath;
}
}
的OpenDialog
方法不需要參數,但如果我只是這樣我就可以滿足該接口出現。
我是否正確地做了這件事,還是錯過了這個觀點?
我認爲問題的關鍵是,OpenDialog是否需要一個參數 – Scroog1 2013-03-08 09:36:24
我的理解是:「如果我不需要它,我如何擺脫命令操作中的參數?」 – Marc 2013-03-08 09:40:09
有趣。這個問題似乎有些模棱兩可。我感覺OP是困惑的,並且認爲''OpenDialog''是執行''Execute''而不是僅僅由它調用。 – Scroog1 2013-03-08 09:47:49