2009-06-29 30 views
9

Tôi đã bắt đầu sử dụng phần này để liên kết các phần tử của giao diện người dùng với lớp sao lưu dữ liệu (bất kỳ thứ gì có thể). Một số cách sử dụng phổ biến mà bạn đặt thuộc tính Thẻ để sử dụng là gì?Sử dụng phổ biến cho thuộc tính Thẻ

Thật vậy, bạn có sử dụng nó không? Tôi biết tôi đã không có một thời gian rất dài.

Trả lời

10

Giống như bạn mô tả, việc sử dụng thường xuyên nhất thuộc tính Tag tôi đã gặp phải và sử dụng trong cả WinForms, WPF và Silverlight là để chỉ ra dữ liệu thực mà điều khiển liên quan đến. Điều này đặc biệt hữu ích trên các trường hợp ListViewItem hoặc giao diện người dùng được tạo tự động mà bạn muốn sử dụng cùng một trình xử lý sự kiện cho nhiều đối tượng nơi dữ liệu mục tiêu khác nhau (tức là hành động được thực hiện vẫn giữ nguyên).

Tuy nhiên, tôi cũng đã sử dụng Tag để lưu trữ giá trị điều tra (mặc dù bạn nên tránh các loại giá trị vì nó sẽ gây ra quyền khi gán giá trị cho thuộc tính Tag) hoặc một chuỗi được sử dụng để xác định hành động cần phải được thực hiện thay vì dữ liệu để thực hiện nó và trong một lần sử dụng cụ thể, tôi đã lưu trữ một đại biểu để tôi có thể tự động tạo một số nút và nhúng trình xử lý của họ trong số Tag (thông tin trình xử lý được cung cấp trong dữ liệu được điều khiển) cách thức).

Tôi chắc chắn có nhiều cách khác để sử dụng Tag và nhiều cách khác để thay thế việc sử dụng Tag bằng thứ gì đó được nhập mạnh hơn, nhưng đó là cách tôi đã sử dụng nó.

+0

Đại biểu? Tôi cho rằng nó nên có, nhưng nó thậm chí không bao giờ xảy ra với tôi rằng đại biểu là đối tượng quá. –

+0

Sử dụng thẻ ListViewItem ngay bây giờ: Trong một hệ thống phân cấp các thư mục/tệp, tôi sử dụng Thẻ để lưu trữ đường dẫn đầy đủ vào tệp, trong khi Tiêu đề chỉ hiển thị Tên. –

2

Thuộc tính Thẻ là một cụm từ cổ (trong thuật ngữ ngôn ngữ lập trình) được giữ lại để kiểm soát. Theo hiểu biết của tôi, nó được sử dụng trong mọi thứ từ hình ảnh cơ bản, delphi và khá nhiều ngôn ngữ khác dựa trên gui.

Nó chỉ đơn giản là một thuộc tính bổ sung cho phép bạn thêm một giá trị số vì bất kỳ lý do nào bạn muốn kiểm soát.

Tôi đã thấy nó được sử dụng cho mọi thứ từ bộ đếm để giữ id bản ghi mà điều khiển được gắn với.

+0

Tôi muốn tránh lưu trữ các loại giá trị trong đó vì hộp đó có giá trị. –

+0

Trong C#, nó không phải là một giá trị số, mà là một đối tượng. Thay vì giữ một ID hồ sơ, bạn có thể giữ một tham chiếu đến hồ sơ thực tế. –

3

Đó là một chút kludge. Nó thường được sử dụng trong ví dụ một TreeView để liên kết một nút với một phần tử dữ liệu.

Nhưng tôi sẽ không sử dụng quá mức vì nó rất công khai và không linh hoạt. Lưu ý rằng bạn hầu như luôn có thể sử dụng từ điển < Control, ValueType> thay thế và có nhiều quyền kiểm soát hơn theo cách đó.

3

Tôi sử dụng nó mọi lúc với ListViews và TreeViews. Nó làm cho cố gắng tìm các dữ liệu cơ bản nhiều hơn dễ dàng hơn. Trong thực tế, tôi không chắc chắn làm thế nào bạn muốn làm cho một ứng dụng Winforms dễ đọc mà không có nó.

Tôi cũng sử dụng nó rất nhiều khi tạo ContextMenus tại thời gian chạy. Tôi đặt một đối tượng vào thành viên Tag của mỗi ToolStripMenuItem và sau đó tôi có thể trỏ mỗi trình xử lý nhấn của mục menu ở cùng một phương thức. Nó dẫn đến mã ít hơn rất nhiều.

Tôi chỉ muốn nó không đòi hỏi quá nhiều quá trình truyền.

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