Giả sử tôi có một điều khiển tùy chỉnh bao bọc một điều khiển khác (ví dụ MyCustomButton). Tôi tiếp xúc với một nội dung bất động sản, mà kết thúc tốt đẹp sự kiểm soát bên trong:Chaining DependencyProperties
public object Content
{
get { return innerControl.Content; }
set { innerControl.Content = value; }
}
Để cho một người tiêu dùng để ràng buộc vào thuộc tính này, tôi cần phải xác định một thuộc tính phụ thuộc cho nó:
public static DependencyProperty ContentProperty = DependencyProperty.Register("Content", typeof (object), typeof (MyCustomButton));
nhưng bây giờ tôi cần định nghĩa tài sản của tôi để sử dụng GetValue/SetValue:
public object Content
{
get { return GetValue(ContentProperty); }
set { SetValue(ContentProperty, value); }
}
vì vậy tôi không gói giá trị của kiểm soát bên trong nữa.
Tôi có thể định nghĩa PropertyMetadata để xử lý sự kiện PropertyChanged của DependencyProperty, nhưng sau đó tôi cần một loạt các mã ống nước để giữ cho các giá trị đồng bộ và ngăn chặn loopbacks vô hạn ngày thay đổi.
CẬP NHẬT: Tôi không thể chỉ xuất phát từ Nút vì UserControl của tôi có nhiều mối quan tâm khác.
Có cách nào tốt hơn để thực hiện việc này không?
Kiểm soát người dùng có các mối quan tâm khác. Đã cập nhật câu hỏi. – Jeff
Bạn có đặc biệt muốn sử dụng thuộc tính "Nội dung" của điều khiển người dùng của mình không?Nếu không, bạn luôn có thể phơi bày một thuộc tính phụ thuộc khác và ràng buộc điều gì đó trong điều khiển người dùng của bạn với giá trị của nó. –
Tôi không quan tâm nó được gọi là gì. Nhưng tôi muốn giá trị của tài sản bị ràng buộc cụ thể đối với một cái gì đó trên sự kiểm soát bên trong. – Jeff