簡體   English   中英

C#:WPF MVVM命令綁定與事件回調

[英]C#: WPF MVVM Command Binding vs. Event Callback

將MVVM用於File-> Exit的關閉操作有什么意義呢?

當你可以簡單地為Click事件創建一個事件回調時,做一個關閉命令看起來很麻煩。 對於這樣與數據或業務邏輯沒有任何關系的東西,我沒有看到使用MVVM方法的意義。 為什么不使用以下內容:

XAML:

<MenuItem Header="_File" Background="WhiteSmoke">
    <MenuItem Name ="Exit" Tag="Exit" Header="Exit" Click="Exit_Click"/>                
</MenuItem>  

代碼背后:

private void Exit_Click(object sender, RoutedEventArgs e)
{
    this.Close();
}

對於這種情況,你有一點爭論。 如果不出意外, 關閉視圖很容易被解釋為完全與視圖相關,因此Click事件處理程序有意義。 與視圖相關的代碼在視圖中,而不是VM。

但是,我會挑戰你的Command ,即Command難以設置。 使用DelegateCommandhttp//wpftutorial.net/DelegateCommand.html需要兩行額外的代碼:

public ICommand ExitCommand {get; private set;}

public MyViewModel()
{
    ExitCommand = new DelegateCommand(ExitApp);
}

處理程序是相同的方式。 雖然Exit可能不需要命令,但一般來說, ICommand是正確的方法,實際上並不那么難。

你是絕對正確的 - 如果處理程序是純UI相關的,那么它不會以任何方式打破MVVM(盡管有些極端主義者說)。 MVVM是為解耦UI和業務邏輯而創建的模式 - 代碼中的“UI事物”是可以的。

暫無
暫無

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

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