2009-08-04 34 views
7

Tôi đã đọc trong một blog câu sau:WPF kiểm soát thừa kế

Nguyên tắc đầu tiên của WPF:
Tránh kiểm soát thừa kế.

Tôi cũng thấy những thứ tương tự ở những nơi khác. Tuy nhiên, tôi không hiểu được logic.

Hơn nữa, tôi thấy các đề xuất ở đây trong StackOverflow liên quan đến kế thừa các điều khiển WPF (xem câu trả lời cho câu hỏi previous của tôi chẳng hạn).

Tôi muốn hiểu lý do tại sao (và nếu) kiểm soát thừa kế nên tránh.

Trả lời

8

Điều khiển WPF là "không cần thiết". Nói cách khác, cái nhìn của họ được tách ra khỏi hành vi của họ. Thường xuyên hơn không, bạn thực sự muốn tùy chỉnh giao diện - không phải hành vi. Không giống như thế giới của Winforms, điều này không yêu cầu bạn kế thừa một điều khiển mới và ghi đè lên logic dựng hình. Thay vào đó, bạn đặt một số thuộc tính trên điều khiển, sử dụng để ghi đè bản thân mẫu nếu bạn không thể có được giao diện bạn muốn từ các thuộc tính khác.

Lưu ý rằng "tránh" có nghĩa là chỉ vậy. Tránh thừa kế nếu bạn có thể. Trong trường hợp bạn cần sửa đổi hành vi, thừa kế cũng có thể là lựa chọn tốt nhất.

4

Blog từ liên kết cũng khẳng định vào cuối rằng:

"Với Styles, Templates, trang trí nội và kèm theo tính chất và hành vi mà bạn có thể thực hiện nhất trong những điều mà bạn thường phải cuộn một kiểm soát mới cho. "

Điều đó đúng. Tuy nhiên, điều đó luôn đúng, nhóm wpftoolkit sẽ không tạo DataGrid của họ làm lớp con của MultiSelector.

Đánh giá từng trường hợp riêng biệt, tôi sẽ nói. Ngoài ra, hãy kiểm tra câu trả lời this.

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