Dot-Net
我應該使用 WPF 轉換器還是觸發器?
我想知道您如何決定何時使用
converters和何時使用triggers. 我更喜歡在 GUI 上使用觸發器進行操作(例如顯示/隱藏控制項、更改它們的外觀等)。前段時間我
BooleanToVisibilityConverter為此目的使用了 a,但現在,我只是不需要它,我做所有與visibility使用觸發器相關的事情,我什至開始思考“ MS 團隊**創建 a 的目的是什麼?”BooleanToVisibilityConverter. 通常,如果可能,我會嘗試使用聲明性方式來編寫程式碼 - 在本例中 - XAML。你對此有何看法?
我同意你的看法,我也嘗試在 XAML 中使用聲明性程式碼,並且更喜歡
Triggers而不是Converters.在大多數情況下,觸發器可以執行與任何轉換器相同的工作,但
Converters可以具有 pcajer 提到的自定義/業務邏輯。一個限制
Triggers是您的 SetterDataTriggers只能更改您的 UI 元素的屬性;所以,你不能用 triggers 更新你的 ViewModels 屬性,這就是Converters勝利,記住ConvertBack方法。因此,您可以使用控制項將您的 VM 屬性與控制項綁定
Visibility,BooleanToVisibilityConverter即使您的控制項visibility被其他方式更改,您的 VM 屬性也會得到更新;通常不需要這就是為什麼BooleanToVisibilityConverter被觸發器取代的原因。簡而言之——
Triggers只能執行OneWay操作而Converters可以執行TwoWay操作