[英]C# Xamarin button ICommand or Click event
我正在學習Xamarin,發現按鈕有兩個選擇:
什么時候使用更好?
該文檔僅提供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相比,命令有兩個好處:
它們未綁定到呼叫者。 可以從不同的視圖,類型等執行一個命令。單擊事件處理程序位於一個非常特定的代碼隱藏文件中。
命令提供了基於CanExecute
方法啟用/禁用UI的功能。
如果不需要CanExecute
功能,則可以輕松使用事件處理程序。 MVVM體系結構促進了命令的使用,因為您可以直接綁定到命令,這樣可以防止代碼隱藏。
我個人僅在可以執行功能相關時才添加命令,因為必須設置所有命令屬性會增加代碼,而不僅僅是添加一些事件處理程序。
當使用x:Bind
(也稱為編譯綁定)時,您也可以直接綁定到方法,因此甚至沒有事件處理程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.