簡體   English   中英

C#Xamarin按鈕ICommand或Click事件

[英]C# Xamarin button ICommand or Click event

我正在學習Xamarin,發現按鈕有兩個選擇:

  1. 命令
  2. 請點擊

什么時候使用更好?

該文檔僅提供Command的示例,但沒有解釋為什么使用Command而不單擊Click。

<Button Text="Back"
                Command="{Binding DeleteCharCommand}"
                Grid.Column="1"
                BorderWidth="0" />

Command接口比Click更為可取,因為如果在ViewModel中注冊Click處理程序,則它會綁定並依賴於該View,這完全違反了Model-View-ViewModel(MVVM)架構模式

MVVM模式的整個理念是使您的View與任何事物分離(通常人們認為UX設計器可以在視圖的布局上工作,而開發人員在“后端”上工作而不互相干擾。)請參見: 關注點分離

因此,基本上,為控件創建Click的事件被認為是不好的做法,但是(根據我個人的XAML工作經驗),沒有什么可以阻止您這樣做。 只要記住這是錯誤的設計,就應該使用Commands。

有一個在Xamarin文檔很好的解釋在這里

與單擊EventHandlers相比,命令有兩個好處:

  1. 它們未綁定到呼叫者。 可以從不同的視圖,類型等執行一個命令。單擊事件處理程序位於一個非常特定的代碼隱藏文件中。

  2. 命令提供了基於CanExecute方法啟用/禁用UI的功能。

如果不需要CanExecute功能,則可以輕松使用事件處理程序。 MVVM體系結構促進了命令的使用,因為您可以直接綁定到命令,這樣可以防止代碼隱藏。

我個人僅在可以執行功能相關時才添加命令,因為必須設置所有命令屬性會增加代碼,而不僅僅是添加一些事件處理程序。

當使用x:Bind (也稱為編譯綁定)時,您也可以直接綁定到方法,因此甚至沒有事件處理程序。

暫無
暫無

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

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