2013-10-19 18 views
7

Tốt hơn nên sử dụng hiệu suất khôn ngoan? Giới hạn chuyển đổi so với kích hoạt và câu ngược lại. Tôi có nên hạn chế sử dụng bộ chuyển đổi vì nó có thể gây nổ lớp không?Trình kích hoạt WPF VS Converter

Trả lời

0

Đối với loại đầu ra tương tự, Triggers có hiệu suất tốt hơn khôn ngoan so với Converter. Mặc dù, conveters được khuyến khích khi bạn muốn bạn phát triển thành TDD khi bạn có thể viết các bài kiểm tra đơn vị cho mã chuyển đổi của mình. Converters có thể được sử dụng để viết các chuyển đổi phức tạp đôi khi không thể sử dụng Trình kích hoạt. Đối với các chuyển đổi phức tạp Converters có thể giảm mã thay vì viết chuỗi Triggers.

5

Nếu bạn tham gia phát triển TDD, nó sẽ là lựa chọn tốt hơn để sử dụng bộ chuyển đổi.

Nếu không có logic nghiệp vụ phức tạp hoặc logic tùy chỉnh nào được áp dụng thì hãy truy cập Trình kích hoạt. Một điều nữa về bộ chuyển đổi là, có một hiệu suất hit liên quan đến việc sử dụng bộ chuyển đổi theo Laurent Bugnion (tác giả của MVVM Light).

Bạn có thể xem thông tin chi tiết hơn về lần truy cập hiệu suất từ ​​bài đăng này. DataTrigger vs databinding with converter performance wise

Bạn có thể biết thêm chi tiết về thời điểm sử dụng trình kích hoạt và thời điểm sử dụng trình chuyển đổi từ bài đăng này. Should I use WPF converter or trigger?

Quyết định có thể được thực hiện dựa trên phương pháp phát triển mà bạn đang theo dõi hoặc tiếp tục theo dõi. Tôi thích gói mô hình xem của bạn trong một khái niệm "WPF Viewmodel" hầu hết thời gian.

0

Trong hầu hết các trường hợp, trình kích hoạt có thể thực hiện cùng một công việc như bất kỳ trình chuyển đổi nào nhưng Trình biến đổi có thể có logic tùy chỉnh/nghiệp vụ.

Một hạn chế của Trình kích hoạt là các Bộ định tuyến trong Trình dữ liệu của bạn chỉ có thể thay đổi các thuộc tính của các phần tử giao diện người dùng của bạn; vì vậy, bạn không thể cập nhật thuộc tính ViewModels của mình bằng trình kích hoạt, đó là nơi Trình chuyển đổi giành chiến thắng, hãy nhớ phương thức ConvertBack.

Vì vậy, trong Triggers ngắn chỉ có thể thực hiện các thao OneWay trong khi chuyển đổi có thể thực hiện các hoạt động TwoWay

+4

nó * cười * Làm thế nào câu trả lời này là gần như giống hệt nhau như [này khác] (http://stackoverflow.com/a/ 11156189/540776) – superjos

+3

Wow, nó đã xuất hiện một lần nữa ở đây: http://stackoverflow.com/questions/24607952/wpf-xaml-datatriggers-or-valueconverters-best-practice –

Các vấn đề liên quan