簡體   English   中英

使用 WPF 中的 Click 方法會破壞 MVVM 嗎?

[英]Does using the Click method in WPF break MVVM?

在帶有 MVVM 的 wpf 界面中,我有一個關閉按鈕,我正在使用按鈕的 Click 方法關閉應用程序,如下所示:

<Button Content="Close"  Click="CloseFunction"/>

我的問題是,這樣做會破壞 MVVM 嗎?

使用 WPF 中的 Click 方法會破壞 MVVM 嗎?

不一定,只要您不在視圖的代碼隱藏中的單擊事件處理程序中實現任何應用程序邏輯

例如,考慮以下實現,它僅從事件處理程序調用視圖 model 的命令:

private void CloseFunction(object sender, RoutedEventArgs e)
{
    ViewModel vm = this.DataContext as ViewModel;
    if (vm != null)
        vm.SomeCommand?.Invoke(null);
}

它與以下 XAML 標記一樣符合 MVVM,它從完全相同的視圖調用完全相同的命令:

<Button Content="Close" Command="{Binding SomeCommand}" />

MVVM 並不是要從視圖中刪除代碼。 它主要是關於關注點分離。

暫無
暫無

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

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