2011-09-03 15 views
5

Trong một biểu mẫu phức tạp, tôi có một thuộc tính được gọi là Readonly để xác định xem mọi thứ có thể chỉnh sửa hay không. Cho đến nay, tôi chuyển thuộc tính này cho mọi điều khiển tùy chỉnh phụ trong biểu mẫu này bởi hàm tạo và ở những nơi khác, tôi truy cập biểu mẫu để nhận giá trị.Có sử dụng thuộc tính tĩnh trong một hình thức thực hành không hay khi biết rằng chỉ có một phiên bản của biểu mẫu?

Nhưng điều này nhanh chóng trở nên quá phức tạp.
Tôi đang nghĩ đến việc tạo thuộc tính này Tĩnh trong biểu mẫu biết rằng chỉ có một phiên bản của biểu mẫu này trong ứng dụng.

Có thể sử dụng thuộc tính tĩnh này trong trường hợp này không? Hoặc đó là một thực hành xấu thậm chí chỉ có một ví dụ của biểu mẫu.

Trả lời

3

Chỉ cần tự hỏi bản thân: điều này có liên quan đến biểu mẫu hoặc tới loại loại của biểu mẫu. Theo giả thuyết, nếu có nhiều hơn một hình thức - tất cả chúng sẽ chỉ đọc/không cùng một lúc? Hay nó sẽ là một hình thức?

Sau đó: bạn có câu trả lời. Tôi nghi ngờ nó nên được ví dụ (không tĩnh).

+0

Trên thực tế nó có liên quan đến hình thức và chuyển đổi nó để tĩnh chỉ để đơn giản hóa đối phó với nó thay vì đi qua nó (hoặc truy cập cho nó) ở mọi nơi. –

+0

@FrenchBoy có vẻ như đang làm điều gì đó xấu xí để lười biếng, IMO –

+0

Yup: $, đúng vậy. Tôi tự hỏi nó xấu đến mức nào. –

4

Thậm chí nếu bạn có một ví dụ duy nhất của biểu mẫu bằng cách sử dụng trường tĩnh thì không an toàn. Bạn có thể có nhiều luồng gây ra sự cố. Chưa kể đến khó khăn để đơn vị kiểm tra ứng dụng của bạn. Cá nhân tôi cố gắng tránh các trường tĩnh càng nhiều càng tốt.

1

Dưới đây là một giải pháp thay thế:

  1. Thêm các điều khiển để hình của bạn như bình thường
  2. Tạo một giao diện được gọi là IReadOnlyToggable trong đó có một tài sản IsReadOnly và để cho các hình thức thực hiện nó.
  3. Thêm thuộc tính sau để điều khiển tùy chỉnh của bạn:

mã:

public bool IsFormReadOnly 
{ 
    get 
    { 
     var form = ParentForm as IReadOnlyToggable; 
     return form != null && form.IsReadOnly; 
    } 
} 
Các vấn đề liên quan