Nó không phải là rõ ràng từ câu hỏi của bạn tại sao bạn cần phải vượt qua các tham số cho constructor của điều khiển tùy chỉnh.
Nó có thể là bởi vì bạn cần điều khiển tùy chỉnh để tiêu thụ các thông số vi phạm trước khi bất kỳ giá trị ràng buộc được truyền từ điều khiển tùy chỉnh để cha mẹ qua cơ chế bất động sản phụ thuộc - tính đáng chú ý nhất ràng buộc đó sẽ tiêu thụ các tham số nhà xây dựng vi phạm trực tiếp hoặc gián tiếp.
Có thể do khởi tạo thông qua hàm tạo tham số là cách duy nhất để đi cho bạn vì bất kỳ lý do gì.
Tôi không biết giải pháp nào cho trường hợp 2. Nhưng khi câu hỏi này phát sinh trường hợp 1 là yêu cầu thông thường. Trong trường hợp này, giải pháp của tôi là tạo một thuộc tính Net dot thông thường. Điều này sẽ được giải quyết trước bất kỳ thuộc tính phụ thuộc nào.
Nhưng có thể có sự cố với thuộc tính Net điểm thông thường. Làm thế nào để bạn liên kết với một tham chiếu? Kiểm soát trong cây thị giác, ví dụ: Có một giải pháp cho việc này, nhưng chỉ có sẵn trong phiên bản XAML mới hơn. Bạn có thể viết
<MyCustomControl MyParameter="{x:Reference Name=Blah}"/>
thay vì
<MyCustomControl MyNonParameter="{Binding ElementName=Blah}"/>
Và bạn không cần phải tạo ra một DP cho điều đó. Trong điều khiển custrom của bạn, bạn chỉ có thể viết
class MyCustomControl {
// The parameter my constructor sadly can not have
public MyParameterType MyParameter { get; set; }
Nguồn
2016-12-01 01:09:50
Hãy sao chép-dán lỗi ban đầu từ IDE thay vì gõ lại vào bật. Dường như có một số lỗi chính tả. –
Tôi đã cập nhật câu hỏi của mình khi bạn yêu cầu –
Thật khó để đưa ra quyết định mà không thấy nhiều mã hơn. Nó có thể xảy ra mà bạn đang nhầm lẫn một cái gì đó, nhưng rất khó để làm cho một cái gì đó ra ngoài. –