簡體   English   中英

如何創建自己的自定義命令

[英]How to create my own custom commands

我是MVVM模式的新手,我正在嘗試編寫自己的自定義命令。 編寫自定義命令的最佳方法是什么? (我在這里和那里讀了很多文章,但是無法獲得創建命令的想法)。 特別是如果有人可以幫助我創建命令,請單擊按鈕以從一個ListView中獲取項目,然后將其放置到另一個ListView中。 (列表視圖綁定到ObservableCollection)。 提前致謝!

您只需要實現ICommand接口。 大多數MVVM框架都有一個基於通用委托的命令類來實現(例如MVVM light中的RelayCommand )。 您只需將要執行的方法傳遞給它們的構造函數即可。

只需實現ICommand接口。 網絡上有很多,甚至是在nuget包中實現的。 使用ICommand搜索RelayCommand或DelegateCommand,您會發現許多實現。 完成后,只需將VM私有方法包裝在命令中即可。 例如

ICommand startTestCommand;

public ICommand StartTestCommand { get { return startTestCommand ?? (startTestCommand = new RelayCommand(StartTest)); }

private void StartTest()
{
    //This will execute if the Command is bound in XAML
}

要在XAML中綁定命令(假設視圖模型是數據上下文),只需將按鈕的Command屬性綁定到“ StartTestCommand”或任何被調用的命令即可。

因此,從本質上講,您並不需要為要問的內容“創建自己的命令”,而是將委托包裝為Command中介程序以處理防止耦合的問題。 有理由創建您自己的命令,但是我建議您使用那里的命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM