TOC

This article has been localized into Vietnamese by the community.

Các lệnh Commands:

Giới thiệu về các lệnh WPF

Ở các chương trước của bài hướng dẫn này, chúng ta đã nói về cách bắt sự kiện, ví dụ như người dùng bấm bào một nút hoặc danh sách các mục (menu item). Trong giao diện người dùng, nó là kiểu chức năng cho phép truy cập ở một vài nơi, được gọi bởi các hành động khác nhau của người dùng.

Lấy ví dụ, nếu bạn có giao diện người dùng điển hình với danh sách chức năng và thanh công cụ, các hành động như kiểu: Tạo mới hoặc mở có sẵn trong danh sách trong thanh công cụ, trong danh mục (Ví dụ như nhấn trái chuột vào khu vực ứng dụng chính) và phím tắt từ bàn phím như Ctrl+N và Ctrl+O.

Tương ứng với từng hành động sẽ tương ứng với chính xác từng đoạn mã, trong các ứng dụng WinForm, bạn sẽ phải định nghĩa các sự kiện cho chúng và sau đó gọi các hàm (function). Với ví trụ trước, có ít nhất 3 sự kiện và vài đoạn mã để xử lý phím tắt. Nó không phải ý tưởng tốt.

Commands

Với WPF, Microsoft đang cố gắng khắc phục điều đó bằng một khái niệm gọi là các lệnh. Nó cho phép bạn xác định các hành động ở một nơi và sau đó tham khảo chúng từ tất cả các điều khiển giao diện người dùng của bạn như các mục menu, nút thanh công cụ, v.v. WPF cũng sẽ lắng nghe các phím tắt và chuyển chúng theo lệnh thích hợp, nếu có, làm cho nó trở thành cách lý tưởng để cung cấp các phím tắt trong một ứng dụng.

Commands cũng giải quyết một rắc rối khác khi xử lý nhiều lối vào cho cùng một chức năng. Trong ứng dụng WinForms, bạn sẽ chịu trách nhiệm viết mã có thể vô hiệu hóa các thành phần giao diện người dùng khi hành động không khả dụng. Chẳng hạn, nếu ứng dụng của bạn có thể sử dụng lệnh clipboard như Cut, nhưng chỉ khi văn bản được chọn, bạn sẽ phải bật và tắt thủ công mục menu chính, nút thanh công cụ và mục menu ngữ cảnh mỗi khi lựa chọn văn bản thay đổi.

Với WPF commands, this is centralized. Với một phương thức, bạn quyết định liệu một lệnh đã cho có thể được thực thi hay không, và sau đó WPF sẽ tự động bật hoặc tắt tất cả các thành phần giao diện đăng ký. Điều này làm cho nó dễ dàng hơn nhiều để tạo ra một ứng dụng đáp ứng và năng động!

Command bindings

Commands không thực sự tự làm bất cứ điều gì bởi chúng. Ở phần gốc, chúng bao gồm giao diện ICommand, chỉ xác định một sự kiện và hai phương thức: Execute() và CanExecute(). Cái đầu tiên là để thực hiện hành động thực tế, trong khi cái thứ hai là để xác định xem hành động đó có khả dụng hay không. Để thực hiện hành động thực tế của lệnh, bạn cần một liên kết giữa lệnh và mã của bạn và đây là lúc CommandBinding phát huy tác dụng.

CommandBinding thường được xác định trên Window hoặc UserControl và giữ một tham chiếu đến Lệnh mà nó xử lý, cũng như các trình xử lý sự kiện thực tế để xử lý các sự kiện Execute() và CanExecute() của Command.

Pre-defined commands

Tất nhiên bạn có thể thực hiện các commands của riêng mình, chúng tôi sẽ xem xét một trong các chương tiếp theo, nhưng để giúp bạn dễ dàng hơn, nhóm WPF đã xác định hơn 100 commands thường được sử dụng mà bạn có thể sử dụng. Chúng đã được chia thành 5 loại, được gọi là ApplicationCommands, NavigationCommands, MediaCommands, EditingCommands và ElementCommands. Đặc biệt là ApplicationCommands chứa các commands cho rất nhiều hành động được sử dụng rất thường xuyên như New, Open, Save and Cut, Copy and Paste.

Summary

Commands giúp bạn phản hồi một hành động chung từ nhiều nguồn khác nhau, sử dụng một trình xử lý sự kiện duy nhất. Nó cũng làm cho việc kích hoạt và vô hiệu hóa các yếu tố giao diện người dùng dựa trên trạng thái và tính khả dụng hiện tại dễ dàng hơn nhiều. Đây chỉ là lý thuyết, nhưng trong các chương tiếp theo, chúng ta sẽ thảo luận về cách sử dụng các Commands và cách bạn xác định các Commands tùy chỉnh của riêng mình.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!